diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-09-15 20:06:42 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-09-15 20:06:42 +0000 |
commit | ae018d1aa1378fcd4f6ed213994ac7742155ae38 (patch) | |
tree | 132c08d40973a787f9a444d3456db103f124d386 /gdb | |
parent | c4ae04ceb1e1daf63f1aed9c8b244875f167878d (diff) | |
download | gdb-ae018d1aa1378fcd4f6ed213994ac7742155ae38.zip gdb-ae018d1aa1378fcd4f6ed213994ac7742155ae38.tar.gz gdb-ae018d1aa1378fcd4f6ed213994ac7742155ae38.tar.bz2 |
* 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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/args.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/args.exp | 77 |
3 files changed, 54 insertions, 33 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 28402c0..8b201de 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2006-09-15 Daniel Jacobowitz <dan@codesourcery.com> + + * 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-09-13 Nick Roberts <nickrob@snap.net.nz> * gdb.mi/mi-file.exp (test_file_list_exec_source_files): Just 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 fa3c6c2ac..75b5509 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} @@ -49,42 +40,64 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb return -1 } +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 - |