[RFC] gdb.base/args.exp: Invoke gdb_load for simulator targets

Kevin Buettner
2003-04-08T22:27:21Z

I'm testing gdb against a simulator and I'm seeing the following in
the gdb.log output:

(gdb) run
Starting program: .../gdb/testsuite/gdb.base/args 1 3
Don't know how to run. Try "help target".
(gdb) FAIL: gdb.base/args.exp: correct args printed

My first inclination was to simply skip this test for simulator
targets, but I decided that there's no reason not to run it. I've
added a bit of code to invoke gdb_load for simulator targets and
wrapped it up in a proc so that it'll be easier to augment as other
targets are identified which can use a similar mechanism.

Comments? (This is reasonably obvious, so I'll check this in a day or
so if there are no objections.)

* gdb.base/args.exp: Invoke gdb_load for simulator targets.
Modify regexps to match extra output after program exit in a
simulator.

Index: gdb.base/args.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/args.exp,v
retrieving revision 1.3
diff -u -p -r1.3 args.exp
--- args.exp 2003/03/27 22:01:24 1.3
+++ args.exp 2003/04/08 22:04:40
@@ -31,6 +31,15 @@ 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}
@@ -47,8 +56,9 @@ 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." \
+ "Starting program.*args(\\.exe)? 1 3.*3\r\n.*args\r\n1\r\n3.*Program exited normally.*" \
"correct args printed"

#
@@ -58,8 +68,9 @@ 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." \
+ "Starting program.*args(\\.exe)? 1 \\\\'\\\\' 3.*4\r\n.*args\r\n1\r\n''\r\n3.*Program exited normally.*" \
"correct args printed, one empty"

#
@@ -69,8 +80,9 @@ 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." \
+ "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"

set GDBFLAGS $old_gdbflags