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

Elena Zannoni
2003-04-08T22:44:29Z

Kevin Buettner writes:
> 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.)
>

Ah, thanks for fixing this Kevin. I remembered now that Michael Snyder
complained about the same problem, and I forgot to go back and fix it.

elena

> * 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