diff options
author | Andrew Burgess <aburgess@redhat.com> | 2023-09-27 18:22:52 +0100 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2023-10-06 13:02:36 +0100 |
commit | fef7f251fecfb5747dae456d2f9b08772f3a3768 (patch) | |
tree | 435aa590f110e541a15a4de273aa57bf0fb1a9b5 | |
parent | f9089d2f7b7d164e6747dc85fb683975119d3bff (diff) | |
download | gdb-fef7f251fecfb5747dae456d2f9b08772f3a3768.zip gdb-fef7f251fecfb5747dae456d2f9b08772f3a3768.tar.gz gdb-fef7f251fecfb5747dae456d2f9b08772f3a3768.tar.bz2 |
gdb/testsuite: cleanup in gdb.base/args.exp
The last few commits resolved the KFAILs in gdb.base/args.exp. With
those out of the way we can clean up this test script a little.
In this commit I have:
- Stopped passing 'nowarnings' flag when building the source file.
I see no reason why this source should issue a warning,
- Moved setup of GDBFLAGS into args_test proc, callers that passed a
newline needed a small tweak, and also the matching code needs
updating for newline handling, but I think this is nicer, the
argument lists are now given just once,
- Updated comment on args_test,
- Updated other comments.
There should be no change in what is tested after this commit.
Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r-- | gdb/testsuite/gdb.base/args.exp | 88 |
1 files changed, 36 insertions, 52 deletions
diff --git a/gdb/testsuite/gdb.base/args.exp b/gdb/testsuite/gdb.base/args.exp index 0e2dc8b..cb50a48 100644 --- a/gdb/testsuite/gdb.base/args.exp +++ b/gdb/testsuite/gdb.base/args.exp @@ -24,76 +24,60 @@ require !use_gdb_stub standard_testfile -if {[build_executable $testfile.exp $testfile \ - $srcfile {debug nowarnings}] == -1} { +if {[build_executable $testfile.exp $testfile $srcfile] == -1} { untested "failed to compile" return -1 } # NAME is the name to use for the tests and ARGLIST is the list of -# expected arguments. +# arguments that are passed to GDB when it is started. proc args_test { name arglist } { - global srcdir - global subdir - global testfile - global hex - global decimal - - clean_restart $testfile - - runto_main - gdb_breakpoint [gdb_get_line_number "set breakpoint here"] - gdb_continue_to_breakpoint "breakpoint for $name" - - set expected_len [expr 1 + [llength $arglist]] - gdb_test "print argc" "\\\$$decimal = $expected_len" "argc for $name" - - set i 1 - foreach arg $arglist { - gdb_test "print argv\[$i\]" "\\\$$decimal = $hex \"$arg\"" \ - "argv\[$i\] for $name" - set i [expr $i + 1] + save_vars { ::GDBFLAGS } { + set ::GDBFLAGS "$::GDBFLAGS --args $::binfile $arglist" + + clean_restart $::binfile + + runto_main + gdb_breakpoint [gdb_get_line_number "set breakpoint here"] + gdb_continue_to_breakpoint "breakpoint for $name" + + set expected_len [expr 1 + [llength $arglist]] + gdb_test "print argc" "\\\$$::decimal = $expected_len" "argc for $name" + + set i 1 + foreach arg $arglist { + if { $arg eq "\n" } { + set arg {\\n} + } + gdb_test "print argv\[$i\]" "\\\$$::decimal = $::hex \"$arg\"" \ + "argv\[$i\] for $name" + set i [expr $i + 1] + } } } -# # Test that the --args are processed correctly. -# -save_vars { GDBFLAGS } { - set old_gdbflags $GDBFLAGS +args_test basic {{1} {3}} - set GDBFLAGS "$old_gdbflags --args $binfile 1 3" - args_test basic {{1} {3}} +# Test that the --args are processed correctly even if one of them is +# empty. - # - # Test that the --args are processed correctly even if one of them is empty. - # The syntax needed is a little peculiar; DejaGNU treats the arguments as a - # list and expands them itself, since no shell redirection is involved. - # - set GDBFLAGS "$old_gdbflags --args $binfile 1 {} 3" - args_test "one empty" {{1} {} {3}} +args_test "one empty" {{1} {} {3}} - # - # try with 2 empty args - # - set GDBFLAGS "$old_gdbflags --args $binfile 1 {} {} 3" - args_test "two empty" {{1} {} {} 3} +# Try with 2 empty args. - # Try with arguments containing literal single quotes. +args_test "two empty" {{1} {} {} 3} - set GDBFLAGS "$old_gdbflags --args $binfile 1 '' 3" - args_test "one empty with single quotes" {{1} {''} {3}} +# Try with arguments containing literal single quotes. - set GDBFLAGS "$old_gdbflags --args $binfile 1 '' '' 3" - args_test "two empty with single quotes" {{1} {''} {''} {3}} +args_test "one empty with single quotes" {{1} {''} {3}} - # try with arguments containing literal newlines. +args_test "two empty with single quotes" {{1} {''} {''} {3}} - set GDBFLAGS "$old_gdbflags --args $binfile 1 {\n} 3" - args_test "one newline" {{1} {\\n} {3}} +# Try with arguments containing literal newlines. - set GDBFLAGS "$old_gdbflags --args $binfile 1 {\n} {\n} 3" - args_test "two newlines" {{1} {\\n} {\\n} {3}} -} +args_test "one newline" {{1} "\n" {3}} + +args_test "two newlines" {{1} "\n" "\n" {3}} |