diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-09-15 15:58:28 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-09-15 15:58:28 +0000 |
commit | 671501e018c39dc92b68075f112f17a8d349bdbe (patch) | |
tree | f0fb9b0d8c4937d66e47b77acb19763e0209b9d9 | |
parent | 79a76235023abcbb82a0f19f8c548fbe78cb0aa2 (diff) | |
download | gdb-671501e018c39dc92b68075f112f17a8d349bdbe.zip gdb-671501e018c39dc92b68075f112f17a8d349bdbe.tar.gz gdb-671501e018c39dc92b68075f112f17a8d349bdbe.tar.bz2 |
gdb/testsuite/
* gdb.base/args.c (main): Add breakpoint marker.
* gdb.base/args.exp: Use args_test for tests. Add new tests which
really test empty arguments.
(args_load): Delete.
(args_test): New.
-rw-r--r-- | ChangeLog.csl | 9 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/args.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/args.exp | 77 |
3 files changed, 55 insertions, 33 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl index ea16c0e..7f57122 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,3 +1,12 @@ +2006-09-15 Daniel Jacobowitz <dan@codesourcery.com> + + gdb/testsuite/ + * gdb.base/args.c (main): Add breakpoint marker. + * gdb.base/args.exp: Use args_test for tests. Add new tests which + really test empty arguments. + (args_load): Delete. + (args_test): New. + 2006-08-30 Daniel Jacobowitz <dan@codesourcery.com> gdb/ diff --git a/gdb/testsuite/gdb.base/args.c b/gdb/testsuite/gdb.base/args.c index d564120..637544a 100644 --- a/gdb/testsuite/gdb.base/args.c +++ b/gdb/testsuite/gdb.base/args.c @@ -8,5 +8,5 @@ main (int argc, char **argv) while (i < argc) printf ("%s\n", argv[i++]); - return 0; + return 0; /* set breakpoint here */ } diff --git a/gdb/testsuite/gdb.base/args.exp b/gdb/testsuite/gdb.base/args.exp index cdd729e..6e00d0c 100644 --- a/gdb/testsuite/gdb.base/args.exp +++ b/gdb/testsuite/gdb.base/args.exp @@ -31,15 +31,6 @@ if [target_info exists noargs] { return; } -# No loading needs to be done when the target is `exec'. Some targets -# require that the program be loaded, however. -proc args_load {} { - global binfile - if [target_info exists is_simulator] { - gdb_load ${binfile} - } -} - set testfile "args" set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} @@ -48,42 +39,64 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } +proc args_test { name arglist } { + global srcdir + global subdir + global binfile + global hex + global decimal + + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + + # No loading needs to be done when the target is `exec'. Some targets + # require that the program be loaded, however, and it doesn't hurt + # for `exec'. + gdb_load $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 { + gdb_test "print argv\[$i\]" "\\\$$decimal = $hex \"$arg\"" \ + "argv\[$i\] for $name" + set i [expr $i + 1] + } +} + # # Test that the --args are processed correctly. # set old_gdbflags $GDBFLAGS set GDBFLAGS "--args $binfile 1 3" -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -args_load -gdb_test "run" \ - "Starting program.*args(\\.exe)? 1 3.*3\r\n.*args\r\n1\r\n3.*Program exited normally." \ - "correct args printed" +args_test basic {{1} {3}} # # 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 "--args $binfile 1 '' 3" -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -args_load -gdb_test "run" \ - "Starting program.*args(\\.exe)? 1 \\\\'\\\\' 3.*4\r\n.*args\r\n1\r\n''\r\n3.*Program exited normally." \ - "correct args printed, one empty" +set GDBFLAGS "--args $binfile 1 {} 3" +args_test "one empty" {{1} {} {3}} # # try with 2 empty args # +set GDBFLAGS "--args $binfile 1 {} {} 3" +args_test "two empty" {{1} {} {} 3} + +# Try with arguments containing literal single quotes. + +set GDBFLAGS "--args $binfile 1 '' 3" +args_test "one empty" {{1} {''} {3}} + set GDBFLAGS "--args $binfile 1 '' '' 3" -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -args_load -gdb_test "run" \ - "Starting program.*args(\\.exe)? 1 \\\\'\\\\' \\\\'\\\\' 3.*5\r\n.*args\r\n1\r\n''\r\n''\r\n3.*Program exited normally." \ - "correct args printed, two empty" +args_test "two empty" {{1} {''} {''} {3}} set GDBFLAGS $old_gdbflags - |