From patchwork Wed Jul 29 15:19:09 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergio Durigan Junior X-Patchwork-Id: 7915 Received: (qmail 40504 invoked by alias); 29 Jul 2015 15:19:16 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 40489 invoked by uid 89); 29 Jul 2015 15:19:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 29 Jul 2015 15:19:14 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 3E5C936AA28 for ; Wed, 29 Jul 2015 15:19:13 +0000 (UTC) Received: from psique.yyz.redhat.com (unused-10-15-17-51.yyz.redhat.com [10.15.17.51]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t6TFJCG6005175; Wed, 29 Jul 2015 11:19:12 -0400 From: Sergio Durigan Junior To: GDB Patches Cc: Sergio Durigan Junior Subject: [PATCH] Uniquefy gdb.threads/attach-into-signal.exp Date: Wed, 29 Jul 2015 11:19:09 -0400 Message-Id: <1438183149-4301-1-git-send-email-sergiodj@redhat.com> X-IsSubscribed: yes Hi, While examining BuildBot's logs, I noticed: gdb.threads/attach-into-signal.exp has two nested loops and don't use unique messages. This commit fixes that. Pushed under the obvious rule. This is the output of 'git diff -b': diff --git a/gdb/testsuite/gdb.threads/attach-into-signal.exp b/gdb/testsuite/gdb.threads/attach-into-signal.exp index 94369fa..17fd8f2 100644 --- a/gdb/testsuite/gdb.threads/attach-into-signal.exp +++ b/gdb/testsuite/gdb.threads/attach-into-signal.exp @@ -60,8 +60,10 @@ proc corefunc { threadtype executable } { set attempt 1 set passes 1 while { $passes < 3 && $attempt <= $attempts } { + with_test_prefix "attempt $attempt" { set stoppedtry 0 while { $stoppedtry < 10 } { + with_test_prefix "stoppedtry $stoppedtry" { if [catch {open /proc/${testpid}/status r} fileid] { set stoppedtry 10 break @@ -78,6 +80,7 @@ proc corefunc { threadtype executable } { sleep 1 set stoppedtry [expr $stoppedtry + 1] } + } if { $stoppedtry >= 10 } { verbose -log $line2 set test "process is still running on the attempt # $attempt of $attempts" @@ -130,6 +133,8 @@ proc corefunc { threadtype executable } { gdb_test "detach" "Detaching from.*" "" } + } + if {$passes < 3} { if {$attempt > $attempts} { unresolved $test @@ -139,7 +144,6 @@ proc corefunc { threadtype executable } { } # Exit and detach the process. - gdb_exit # Make sure we don't leave a process around to confuse the And this is the final commit. gdb/testsuite/ChangeLog: 2015-07-29 Sergio Durigan Junior * gdb.threads/attach-into-signal.exp (corefunc): Use with_test_prefix on nested loops, uniquefying the test messages. --- gdb/testsuite/ChangeLog | 5 + gdb/testsuite/gdb.threads/attach-into-signal.exp | 126 ++++++++++++----------- 2 files changed, 70 insertions(+), 61 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1f9bf98..28c7044 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2015-07-29 Sergio Durigan Junior + * gdb.threads/attach-into-signal.exp (corefunc): Use + with_test_prefix on nested loops, uniquefying the test messages. + +2015-07-29 Sergio Durigan Junior + * gdb.python/py-objfile.exp: Fix typo that snuck in from my last commit. diff --git a/gdb/testsuite/gdb.threads/attach-into-signal.exp b/gdb/testsuite/gdb.threads/attach-into-signal.exp index 94369fa..17fd8f2 100644 --- a/gdb/testsuite/gdb.threads/attach-into-signal.exp +++ b/gdb/testsuite/gdb.threads/attach-into-signal.exp @@ -60,76 +60,81 @@ proc corefunc { threadtype executable } { set attempt 1 set passes 1 while { $passes < 3 && $attempt <= $attempts } { - set stoppedtry 0 - while { $stoppedtry < 10 } { - if [catch {open /proc/${testpid}/status r} fileid] { - set stoppedtry 10 - break + with_test_prefix "attempt $attempt" { + set stoppedtry 0 + while { $stoppedtry < 10 } { + with_test_prefix "stoppedtry $stoppedtry" { + if [catch {open /proc/${testpid}/status r} fileid] { + set stoppedtry 10 + break + } + gets $fileid line1 + gets $fileid line2 + close $fileid + + if {![string match "*(stopped)*" $line2]} { + # No PASS message as we may be looping in multiple + # attempts. + break + } + sleep 1 + set stoppedtry [expr $stoppedtry + 1] + } } - gets $fileid line1 - gets $fileid line2 - close $fileid - - if {![string match "*(stopped)*" $line2]} { - # No PASS message as we may be looping in multiple - # attempts. + if { $stoppedtry >= 10 } { + verbose -log $line2 + set test "process is still running on the attempt # $attempt of $attempts" break } - sleep 1 - set stoppedtry [expr $stoppedtry + 1] - } - if { $stoppedtry >= 10 } { - verbose -log $line2 - set test "process is still running on the attempt # $attempt of $attempts" - break - } - # Main test: - set test "attach (pass $passes), pending signal catch" - if {[gdb_test_multiple "attach $testpid" $test { - -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*Program received signal SIGALRM.*$gdb_prompt $" { - # nonthreaded: - pass $test - verbose -log "$test succeeded on the attempt # $attempt of $attempts" - set passes [expr $passes + 1] - } - -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" { - set ok 0 - - if { $threadtype == "threaded" } { - # In the threaded case, the signal is left - # pending on the second thread. Check for - # that by peeking at the thread's siginfo. - # SIGALRM is 14, SIGSTOP is 19. - - set test2 "thread apply 2 print \$_siginfo.si_signo" - gdb_test_multiple $test2 $test2 { - -re " = 14\r\n$gdb_prompt $" { - set ok 1 - } - -re " = 19\r\n$gdb_prompt $" { - } - } - } else { - # In the nonthreaded case, GDB should tell the - # user about having seen a signal. - } - - if { $ok == 0} { - # We just lack the luck, we should try it again. - set attempt [expr $attempt + 1] - } else { + # Main test: + set test "attach (pass $passes), pending signal catch" + if {[gdb_test_multiple "attach $testpid" $test { + -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*Program received signal SIGALRM.*$gdb_prompt $" { + # nonthreaded: pass $test verbose -log "$test succeeded on the attempt # $attempt of $attempts" set passes [expr $passes + 1] } + -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" { + set ok 0 + + if { $threadtype == "threaded" } { + # In the threaded case, the signal is left + # pending on the second thread. Check for + # that by peeking at the thread's siginfo. + # SIGALRM is 14, SIGSTOP is 19. + + set test2 "thread apply 2 print \$_siginfo.si_signo" + gdb_test_multiple $test2 $test2 { + -re " = 14\r\n$gdb_prompt $" { + set ok 1 + } + -re " = 19\r\n$gdb_prompt $" { + } + } + } else { + # In the nonthreaded case, GDB should tell the + # user about having seen a signal. + } + + if { $ok == 0} { + # We just lack the luck, we should try it again. + set attempt [expr $attempt + 1] + } else { + pass $test + verbose -log "$test succeeded on the attempt # $attempt of $attempts" + set passes [expr $passes + 1] + } + } + }] != 0 } { + break } - }] != 0 } { - break - } - gdb_test "detach" "Detaching from.*" "" + gdb_test "detach" "Detaching from.*" "" + } } + if {$passes < 3} { if {$attempt > $attempts} { unresolved $test @@ -139,7 +144,6 @@ proc corefunc { threadtype executable } { } # Exit and detach the process. - gdb_exit # Make sure we don't leave a process around to confuse the @@ -149,7 +153,7 @@ proc corefunc { threadtype executable } { # Continue the program - some Linux kernels need it before -9 if the # process is stopped. remote_exec build "kill -s CONT ${testpid}" - + remote_exec build "kill -9 ${testpid}" }