This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Uniquefy gdb.threads/attach-into-signal.exp
- From: Sergio Durigan Junior <sergiodj at redhat dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>
- Cc: Sergio Durigan Junior <sergiodj at redhat dot com>
- Date: Wed, 29 Jul 2015 11:19:09 -0400
- Subject: [PATCH] Uniquefy gdb.threads/attach-into-signal.exp
- Authentication-results: sourceware.org; auth=none
Hi,
While examining BuildBot's logs, I noticed:
<https://sourceware.org/ml/gdb-testers/2015-q3/msg03767.html>
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 <sergiodj@redhat.com>
* 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 <sergiodj@redhat.com>
+ * gdb.threads/attach-into-signal.exp (corefunc): Use
+ with_test_prefix on nested loops, uniquefying the test messages.
+
+2015-07-29 Sergio Durigan Junior <sergiodj@redhat.com>
+
* 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}"
}
--
2.4.3