From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29799 invoked by alias); 28 Feb 2012 19:09:08 -0000 Received: (qmail 29788 invoked by uid 22791); 28 Feb 2012 19:09:06 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 28 Feb 2012 19:08:52 +0000 Received: from nat-dem.mentorg.com ([195.212.93.2] helo=eu2-mail.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1S2SPq-0007fG-G0 from Thomas_Schwinge@mentor.com ; Tue, 28 Feb 2012 11:08:50 -0800 Received: from feldtkeller.schwinge.homeip.net ([172.30.64.109]) by eu2-mail.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 28 Feb 2012 20:08:48 +0100 From: Thomas Schwinge To: Jan Kratochvil Cc: gdb-patches@sourceware.org, Kevin Buettner Subject: Re: Testsuite regression for annota1.exp and annota3.exp [Re: [PATCH] [SH] ... can do this signal stuff!] In-Reply-To: <20120228160351.GA12029@host2.jankratochvil.net> References: <874nub5n16.fsf@schwinge.name> <20120228160351.GA12029@host2.jankratochvil.net> User-Agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu) Date: Tue, 28 Feb 2012 19:42:00 -0000 Message-ID: <871upe6aj5.fsf@schwinge.name> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-02/txt/msg00668.txt.bz2 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 10357 Hi! On Tue, 28 Feb 2012 17:03:51 +0100, Jan Kratochvil wrote: > On Tue, 28 Feb 2012 10:23:49 +0100, Thomas Schwinge wrote: > > gdb/testsuite/ > > 2012-02-28 Thomas Schwinge > >=20 > > * gdb.base/annota1.c [__sh__]: Remove any special-casing. > > * gdb.base/annota3.c: Likewise. > > * gdb.base/sigall.c: Likewise. > > * gdb.base/signals.c: Likewise. > > * gdb.reverse/sigall-reverse.c: Likewise. >=20 > Sorry but it caused regressions. Please use gdb_get_line_number there. Sorry for that. Fixing this was not as easy as I thought; please have a look at the following mess, especially in annota3.exp. From 142db50201b1b1c69ebdc2dcdb1181cde1db3b08 I got the idea of using [concat ...] for building gdb_expect_list's third list argument -- it needs to expand $main_line, etc. Any better suggestions (I obviously don't have a lot of TCL and/or GDB testcase writing experience), or is this acceptable? gdb/testsuite/ 2012-02-28 Thomas Schwinge * gdb.base/annota1.exp: Use gdb_get_line_number for retrieveing line numbers instead of hardcoding them. * gdb.base/annota1.c: Provide suitable markers. * gdb.base/annota3.exp: Use gdb_get_line_number for retrieveing line numbers instead of hardcoding them. * gdb.base/annota3.c: Provide suitable markers. diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/anno= ta1.c index 28c9ed1..239ea16 100644 --- a/gdb/testsuite/gdb.base/annota1.c +++ b/gdb/testsuite/gdb.base/annota1.c @@ -25,7 +25,7 @@ int main () #endif { - int my_array[3] =3D { 1, 2, 3 }; + int my_array[3] =3D { 1, 2, 3 }; /* break main */ =20=20=20 value =3D 7; =20=20=20 @@ -39,9 +39,9 @@ main () { int i; for (i =3D 0; i < 5; i++) - value++; + value++; /* increment value */ } =20 - return 0; + return 0; /* after loop */ } =20 diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/an= nota1.exp index 66f96e7..c94f185 100644 --- a/gdb/testsuite/gdb.base/annota1.exp +++ b/gdb/testsuite/gdb.base/annota1.exp @@ -45,11 +45,6 @@ gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} =20 -# -# the line at which break main will put the breakpoint -# -set main_line 32 - # The commands we test here produce many lines of output; disable "press=20 # to continue" prompts. gdb_test_no_output "set height 0" @@ -57,8 +52,11 @@ gdb_test_no_output "set height 0" # # break at main # + +set main_line [gdb_get_line_number "break main"] + gdb_test "break main" \ - "Breakpoint.*at.* file .*$srcfile, line.*" \ + "Breakpoint.*at.* file .*$srcfile, line $main_line\." \ "breakpoint main" =20 =20 @@ -302,13 +300,13 @@ gdb_test_multiple "delete 3" "delete bp 3" { # break at main, after value is initialized. This is in preparation # to test the annotate output for the display command. # -gdb_test_multiple "break main" "break at 28" { +gdb_test_multiple "break main" "break at main" { -re "post-prompt.*\032\032breakpoints-invalid.*Breakpoint 4 at $hex: f= ile ${escapedsrcfile}, line $main_line.*$gdb_prompt$" { - pass "break at 28" + pass "break at main" } -re "post-prompt.*\032\032breakpoints-invalid.*Breakpoint 4 at $hex: f= ile .*${srcfile}, line $main_line.*$gdb_prompt$" { setup_xfail "*-*-*" 1270 - fail "break at 28" + fail "break at main" } } =20 @@ -351,9 +349,12 @@ gdb_expect { # Test that breakpoints-invalid is issued once and only once for # breakpoint ignore count changes, after annotation stopped. # -gdb_test_multiple "break 46" "break at 46" { - -re "Breakpoint 5 at $hex: file .*$srcfile, line 46.*$gdb_prompt$" { - pass "break at 46" + +set value_inc_line [gdb_get_line_number "increment value"] + +gdb_test_multiple "break $value_inc_line" "break at value++" { + -re "Breakpoint 5 at $hex: file .*$srcfile, line $value_inc_line.*$gdb= _prompt$" { + pass "break at value++" } } =20 @@ -364,7 +365,7 @@ gdb_test_multiple "ignore 5 4" "ignore 5 4" { } =20 gdb_test_multiple "continue" "annotate ignore count change" { - -re ".*$srcfile:46:.*\032\032stopped\r\n\r\n\032\032breakpoints-invali= d\r\n$gdb_prompt$" { + -re ".*$srcfile:$value_inc_line:.*\032\032stopped\r\n\r\n\032\032break= points-invalid\r\n$gdb_prompt$" { pass "annotate ignore count change" } } @@ -377,8 +378,10 @@ gdb_test_multiple "next" "next to exit loop" { } } =20 +set after_loop_line [gdb_get_line_number "after loop"] + gdb_test_multiple "next" "breakpoint ignore count" { - -re ".*$srcfile:49:.*$gdb_prompt$" { + -re ".*$srcfile:$after_loop_line:.*$gdb_prompt$" { pass "breakpoint ignore count" } } diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/anno= ta3.c index 28c9ed1..239ea16 100644 --- a/gdb/testsuite/gdb.base/annota3.c +++ b/gdb/testsuite/gdb.base/annota3.c @@ -25,7 +25,7 @@ int main () #endif { - int my_array[3] =3D { 1, 2, 3 }; + int my_array[3] =3D { 1, 2, 3 }; /* break main */ =20=20=20 value =3D 7; =20=20=20 @@ -39,9 +39,9 @@ main () { int i; for (i =3D 0; i < 5; i++) - value++; + value++; /* increment value */ } =20 - return 0; + return 0; /* after loop */ } =20 diff --git a/gdb/testsuite/gdb.base/annota3.exp b/gdb/testsuite/gdb.base/an= nota3.exp index 82abc0a..95670f9 100644 --- a/gdb/testsuite/gdb.base/annota3.exp +++ b/gdb/testsuite/gdb.base/annota3.exp @@ -45,11 +45,6 @@ gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} =20 -# -# the line at which break main will put the breakpoint -# -set main_line 32 - # The commands we test here produce many lines of output; disable "press=20 # to continue" prompts. gdb_test_no_output "set height 0" @@ -57,8 +52,11 @@ gdb_test_no_output "set height 0" # # break at main # + +set main_line [gdb_get_line_number "break main"] + gdb_test "break main" \ - "Breakpoint.*at.* file .*$srcfile, line.*" \ + "Breakpoint.*at.* file .*$srcfile, line $main_line\." \ "breakpoint main" =20 =20 @@ -106,11 +104,10 @@ gdb_test_multiple "end" "end if construct" { # info break: # send_gdb "info break\n"=20 -gdb_expect_list "breakpoint info" "$gdb_prompt$" { +gdb_expect_list "breakpoint info" "$gdb_prompt$" [concat { "\r\n\032\032post-prompt\r\n" - "Num Type Disp Enb Address +What\r\n" - "1 breakpoint keep y 0x\[0-9a-zA-Z\]+ +in main at .*annota= 3.c:32\r\n" -} + "Num Type Disp Enb Address +What\r\n" } [list \ + "1 breakpoint keep y 0x\[0-9a-zA-Z\]+ +in main at .*annota= 3.c:$main_line\r\n"]] =20 =20 # @@ -118,18 +115,18 @@ gdb_expect_list "breakpoint info" "$gdb_prompt$" { # #exp_internal 1 send_gdb "run\n" -gdb_expect_list "run until main breakpoint" "$gdb_prompt$" { +gdb_expect_list "run until main breakpoint" "$gdb_prompt$" [concat { "\r\n\032\032post-prompt\r\n" "Starting program: .*annota3(|\.exe) \r\n" "\r\n\032\032starting\r\n" "\r\n\032\032breakpoint 1\r\n" "\r\n" "Breakpoint 1, " - "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n" - "main \\(\\) at .*annota3.c:32\r\n" - "\r\n\032\032source.*annota3.c:32:.*:beg:0x\[0-9a-z\]+\r\n" + "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n" } [list \ + "main \\(\\) at .*annota3.c:$main_line\r\n"] [list \ + "\r\n\032\032source.*annota3.c:$main_line:.*:beg:0x\[0-9a-z\]+\r\n"] { "\r\n\032\032stopped\r\n" -} +}] #exp_internal 0 #exit 0 =20 @@ -270,10 +267,9 @@ gdb_expect_list "delete bp 3" "$gdb_prompt$" { # to test the annotate output for the display command. # send_gdb "break main\n" -gdb_expect_list "break at 28" "$gdb_prompt$" { - "\r\n\032\032post-prompt\r\n" - "Breakpoint 4 at 0x\[0-9a-z\]+: file .*annota3.c, line 32.\r\n" -} +gdb_expect_list "break at main" "$gdb_prompt$" [concat { + "\r\n\032\032post-prompt\r\n" } [list \ + "Breakpoint 4 at 0x\[0-9a-z\]+: file .*annota3.c, line $main_line.\r\n= "]] =20 # # display the value @@ -309,11 +305,13 @@ gdb_expect { # NOTE: breakpoints-invalid annotations have been removed from # level 3 but keep these tests for continuity and comparison # with annota1.exp. -send_gdb "break 46\n" -gdb_expect_list "break at 46" "$gdb_prompt$" { - "\r\n\032\032post-prompt\r\n" - "Breakpoint 5 at 0x\[0-9a-z\]+: file .*annota3.c, line 46.\r\n" -} + +set value_inc_line [gdb_get_line_number "increment value"] + +send_gdb "break $value_inc_line\n" +gdb_expect_list "break at value++" "$gdb_prompt$" [concat { + "\r\n\032\032post-prompt\r\n" } [list \ + "Breakpoint 5 at 0x\[0-9a-z\]+: file .*annota3.c, line $value_inc_line= .\r\n"]] =20 send_gdb "ignore 5 4\n" gdb_expect_list "ignore 5 4" "$gdb_prompt$" { @@ -323,17 +321,17 @@ gdb_expect_list "ignore 5 4" "$gdb_prompt$" { } =20 send_gdb "continue\n" -gdb_expect_list "annotate ignore count change" "$gdb_prompt$" { +gdb_expect_list "annotate ignore count change" "$gdb_prompt$" [concat { "\r\n\032\032post-prompt\r\n" "\r\n\032\032breakpoint 5\r\n" "\r\n" "Breakpoint 5, " - "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n" - "main \\(\\) at .*annota3.c:46\r\n" - "\r\n\032\032source .*annota3.c:46:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n" + "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n" } [list \ + "main \\(\\) at .*annota3.c:$value_inc_line\r\n"] [list \ + "\r\n\032\032source .*annota3.c:$value_inc_line:\[0-9\]+:beg:0x\[0-9a-= z\]+\r\n"] { "1: value =3D 11\r\n" "\r\n\032\032stopped\r\n" -} +}] =20 # check that ignore command is working, or the above can provide # misleading assurance ... @@ -347,14 +345,16 @@ gdb_expect_list "next to exit loop" "$gdb_prompt$" { "\r\n\032\032stopped\r\n" } =20 +set after_loop_line [gdb_get_line_number "after loop"] + send_gdb "next\n" -gdb_expect_list "breakpoint ignore count" "$gdb_prompt$" { +gdb_expect_list "breakpoint ignore count" "$gdb_prompt$" [concat { "\r\n\032\032post-prompt\r\n" - "\r\n\032\032starting\r\n" - "\r\n\032\032source.*annota3.c:49:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n" + "\r\n\032\032starting\r\n" } [list \ + "\r\n\032\032source.*annota3.c:$after_loop_line:\[0-9\]+:beg:0x\[0-9a-= z\]+\r\n"] { "1: value =3D 12\r\n" "\r\n\032\032stopped\r\n" -} +}] =20 # Get the inferior's PID for later. =20 Gr=C3=BC=C3=9Fe, Thomas --=-=-= Content-Type: application/pgp-signature Content-length: 489 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQEcBAEBAgAGBQJPTSYuAAoJENuKOtuXzphJSAgH/1h2EJaddzxRijDonVGfuxtZ Ci7EX/koDdFhHgRKcsDaPEw7ry2M652KEpxUl4+bICc/AbfmuBHqr0GEfJXb6rJl d+THplskkNfqyRD5N1PBtDv+EzMLbgh70HxVLfODKzElOtVai4eBCrbeIUPvDDpi /f9rzsPauucYrHNci+Q1rQynvC+hLTMFiS9t0FWzQUbnJtwvBEFZtJ7/O8YHaJ/S m6qPDE+14g4tfJBo81qGYcm6oDJ7BbON43umLnmyXxyvzn/htLT24bCntrCraAHL hxbvHnujaMwIZIB8ZMk/Iqe6lElqa1aOWfdEqVtDDEhhrm/EiHGKZRr/mGtjqoI= =5VfP -----END PGP SIGNATURE----- --=-=-=--