aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2023-09-27 18:22:52 +0100
committerAndrew Burgess <aburgess@redhat.com>2023-10-06 13:02:36 +0100
commitfef7f251fecfb5747dae456d2f9b08772f3a3768 (patch)
tree435aa590f110e541a15a4de273aa57bf0fb1a9b5 /gdb
parentf9089d2f7b7d164e6747dc85fb683975119d3bff (diff)
downloadgdb-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>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/gdb.base/args.exp88
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}}