This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH] Add "needs_status_wrapper" feature to gdb testsuite.
- From: Andrew Cagney <ac131313 at cygnus dot com>
- To: Michael Snyder <msnyder at cygnus dot com>, fnasser at redhat dot com,Michael Elizabeth Chastain <mec at shout dot net>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Fri, 10 May 2002 15:51:26 -0400
- Subject: Re: [PATCH] Add "needs_status_wrapper" feature to gdb testsuite.
- References: <200205070035.g470ZL426477@reddwarf.sfbay.redhat.com>
Hmm,
This doesn't work with existing multi-lib configurations. The second
and further test runs get linked with the wrong wrapper (because it
wasn't re-compiled) :-(
Can this please be pulled or disabled until the problem is fixed?
Andrew
> This is a feature that has been being used in the GCC testsuite,
> but I was completely unaware of it before now.
>
> This enables tests that look for an exit status to succeed even
> on targets that don't implement the exit status. I think it's
> pretty cool!
>
> I've modified two tests from gdb/testsuite to take advantage of it.
> I'm not sure which other tests may also need modification, but
> now there are a couple of examples to look at.
>
> Index: lib/gdb.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
> retrieving revision 1.15
> diff -p -r1.15 gdb.exp
> *** lib/gdb.exp 3 Apr 2002 16:17:11 -0000 1.15
> --- lib/gdb.exp 7 May 2002 00:10:06 -0000
> *************** proc gdb_preprocess {source dest args} {
> *** 1092,1099 ****
> --- 1092,1125 ----
> return $result;
> }
>
> + set gdb_wrapper_initialized 0
> +
> + proc gdb_wrapper_init { args } {
> + global gdb_wrapper_initialized;
> + global gdb_wrapper_file;
> + global gdb_wrapper_flags;
return;
> + if { $gdb_wrapper_initialized == 1 } { return; }
> +
> + if {[target_info exists needs_status_wrapper] && \
> + [target_info needs_status_wrapper] != "0" && \
> + ![info exists gdb_wrapper_file]} {
> + set result [build_wrapper "testglue.o"];
> + if { $result != "" } {
> + set gdb_wrapper_file [lindex $result 0];
> + set gdb_wrapper_flags [lindex $result 1];
> + } else {
> + warning "Status wrapper failed to build."
> + }
> + }
> + set gdb_wrapper_initialized 1
> + }
> +