From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25098 invoked by alias); 18 Sep 2002 15:46:13 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 25077 invoked from network); 18 Sep 2002 15:46:09 -0000 Received: from unknown (HELO touchme.toronto.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 18 Sep 2002 15:46:09 -0000 Received: from redhat.com (tooth.toronto.redhat.com [172.16.14.29]) by touchme.toronto.redhat.com (Postfix) with ESMTP id AB539B8831 for ; Wed, 18 Sep 2002 11:46:08 -0400 (EDT) Message-ID: <3D889F71.2070202@redhat.com> Date: Wed, 18 Sep 2002 08:46:00 -0000 From: Fernando Nasser Organization: Red Hat Canada User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020607 X-Accept-Language: en-us, en MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Subject: Re: [RFA] testsuite/gdb.base/ending-run.exp References: <20020918132156.Z29920@cygbert.vinschen.de> Content-Type: multipart/mixed; boundary="------------020700060004050801050407" X-SW-Source: 2002-09/txt/msg00398.txt.bz2 This is a multi-part message in MIME format. --------------020700060004050801050407 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 3004 Corinna Vinschen wrote: > Hi, > > I suggest the attached patch to ending-run.exp which fixes the following > problems: > > - The "step out of main (status wrapper)" check tests only for > __wrap_main but not for __wrap__main which is used in dejagnu's > testglue.c when UNDERSOCRES is defined. > > - The "step to end of run (status wrapper)" test expects not only > the "EXIT code 0" but also a "Program exited normaly" string. > That's not ok for targets which never actually exit but are just > trapped in a special _exit() handler. > > - Based on this, the expectation that the following "next" will print > the string "The program is not being run" is plain wrong. By adding > a special case for these targets and setting the expected behaviour > to XFAIL, these targets get a fair chance ;-) > > Corinna > > * gdb.base/ending-run.exp: Fix expected string for _wrap_main to > allow correct handling of #ifdef UNDERSCORES from dejagnu/testglue.c. > Fix handling of "step to end of run" for embedded targets which > never actually exit. > > Index: gdb.base/ending-run.exp > =================================================================== > RCS file: /cvs/src/src/gdb/testsuite/gdb.base/ending-run.exp,v > retrieving revision 1.16 > diff -u -p -r1.16 ending-run.exp > --- gdb.base/ending-run.exp 19 Jul 2002 00:02:34 -0000 1.16 > +++ gdb.base/ending-run.exp 18 Sep 2002 11:21:22 -0000 > @@ -195,7 +195,7 @@ gdb_expect { > -re ".*in.*\\\$START\\\$.*from.*dld.sl.*$gdb_prompt $" { > pass "step out of main" > } > - -re ".*in __wrap_main ().*$gdb_prompt $" { > + -re ".*in __wrap__?main ().*$gdb_prompt $" { > pass "step out of main (status wrapper)" > } > -re ".*$gdb_prompt $" { fail "step out of main (at end 2)" } This part is OK. You can check it in immediately. > @@ -245,8 +245,12 @@ if {! [target_info exists use_gdb_stub] > # exit" message. > pass "step to end of run" > } > - -re "Single.*EXIT code 0.*Program exited normally.*$gdb_prompt $" { > + -re "Single.*EXIT code 0\r\n.*Program exited normally.*$gdb_prompt $" { > pass "step to end of run (status wrapper)" You forgot to mention this change (which seems correct). It also can be checked in providing you mention it in the ChangeLog. > + } > + -re "Single.*EXIT code 0\r\n.*$gdb_prompt $" { > + pass "step to end of run (status wrapper)" > + setup_xfail "*-*-*" > } > -re ".*Single.*Program exited.*$gdb_prompt $" { > pass "step to end of run" > > The code for xstormy was actually not correct. Please look at the attached (untested) patch, add your case to it setting the variables accordingly and give it a spin. If it works for you I will check it in and then you can add the case above to it. Regards, Fernnado -- Fernando Nasser Red Hat Canada Ltd. E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9 --------------020700060004050801050407 Content-Type: text/plain; name="ENDINGRUN.PATCH" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ENDINGRUN.PATCH" Content-length: 3424 Index: testsuite/gdb.base/ending-run.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/ending-run.exp,v retrieving revision 1.16 diff -c -p -r1.16 ending-run.exp *** testsuite/gdb.base/ending-run.exp 19 Jul 2002 00:02:34 -0000 1.16 --- testsuite/gdb.base/ending-run.exp 18 Sep 2002 15:40:25 -0000 *************** gdb_expect { *** 233,238 **** --- 233,241 ---- # every BSP's exit function behaves differently, so there's no single # way to tell whether we've exited gracefully or not. So don't run # these tests when use_gdb_stub is set, or when we're running under Cygmon. + set program_exited_normally 0 + set program_not_exited 0 + set program_in_exit 0 if {! [target_info exists use_gdb_stub] && (! [target_info exists use_cygmon] || ! [target_info use_cygmon])} { global program_exited; *************** if {! [target_info exists use_gdb_stub] *** 244,276 **** # then we won't get the "Single-stepping until function # exit" message. pass "step to end of run" } -re "Single.*EXIT code 0.*Program exited normally.*$gdb_prompt $" { pass "step to end of run (status wrapper)" } -re ".*Single.*Program exited.*$gdb_prompt $" { pass "step to end of run" } -re ".*Single.*in exit.*from.*dld.sl.*$gdb_prompt $" { pass "step to end of run" ! gdb_test "c" ".*" "continue after exit" } -re ".*Single.*_int_reset.*$gdb_prompt $" { pass "step to end of run" ! setup_xfail "xstormy16-*-*" } -re ".*$gdb_prompt $" { fail "step to end of run" } timeout { fail "(timeout) step to end of run" } } } set timeout $old_timeout ! gdb_test "n" ".*The program is not being run.*" "don't step after run" set exec_output [remote_exec host "ls core"] --- 247,300 ---- # then we won't get the "Single-stepping until function # exit" message. pass "step to end of run" + set program_exited_normally 1 } -re "Single.*EXIT code 0.*Program exited normally.*$gdb_prompt $" { pass "step to end of run (status wrapper)" + set program_exited_normally 1 } -re ".*Single.*Program exited.*$gdb_prompt $" { pass "step to end of run" + set program_exited_normally 1 } -re ".*Single.*in exit.*from.*dld.sl.*$gdb_prompt $" { pass "step to end of run" ! set program_in_exit 1 } -re ".*Single.*_int_reset.*$gdb_prompt $" { pass "step to end of run" ! if {![istarget "xstormy16-*-*"]} { ! set program_exited_normally 1 ! } } -re ".*$gdb_prompt $" { fail "step to end of run" + set program_not_exited 1 } timeout { fail "(timeout) step to end of run" + set program_not_exited 1 } } } + if {$program_in_exit} { + if {[gdb_test "c" ".*" "continue after exit"] == 0} { + set program_exited_normally 1 + } + } else { + unsupported "continue after exit" + } + set timeout $old_timeout ! if {$program_exited_normally} { ! gdb_test "n" ".*The program is not being run.*" "don't step after run" ! } elseif {$program_not_exited} { ! unresolved "don't step after run" ! } else { ! unsupported "don't step after run" ! } set exec_output [remote_exec host "ls core"] --------------020700060004050801050407--