This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] testsuite: Fix PR threads/19422 regression + Guile regression


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=31d765d3801c63a66312023181edb3af25c03598

commit 31d765d3801c63a66312023181edb3af25c03598
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Jan 22 21:21:45 2016 +0100

    testsuite: Fix PR threads/19422 regression + Guile regression
    
    The PR threads/19422 patchset added a new regression.
    
    Additionally below it there was already a regression if --with-guile (which is
    default if Guile is found) was used.
    
    racy case #1:
    
    (xgdb) PASS: gdb.gdb/selftest.exp: Set xgdb_prompt
    ^M
    Thread 1 "xgdb" received signal SIGINT, Interrupt.^M
    0x00007ffff583bfdd in poll () from /lib64/libc.so.6^M
    (gdb) FAIL: gdb.gdb/selftest.exp: send ^C to child process
    signal SIGINT^M
    Continuing with signal SIGINT.^M
    ^C^M
    Thread 1 "xgdb" received signal SIGINT, Interrupt.^M
    0x00007ffff5779da0 in sigprocmask () from /lib64/libc.so.6^M
    (gdb) PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process
    backtrace^M
    errstring=errstring@entry=0x7e0e6c "", mask=mask@entry=RETURN_MASK_ALL) at exceptions.c:240^M
    errstring=errstring@entry=0x7e0e6c "", mask=mask@entry=RETURN_MASK_ALL) at exceptions.c:240^M
    (gdb) PASS: gdb.gdb/selftest.exp: backtrace through signal handler
    
    racy case #2:
    
    (xgdb) PASS: gdb.gdb/selftest.exp: Set xgdb_prompt
    ^M
    Thread 1 "xgdb" received signal SIGINT, Interrupt.^M
    0x00007ffff583bfdd in poll () from /lib64/libc.so.6^M
    (gdb) FAIL: gdb.gdb/selftest.exp: send ^C to child process
    signal SIGINT^M
    Continuing with signal SIGINT.^M
    ^C^M
    Thread 2 "xgdb" received signal SIGINT, Interrupt.^M
    [Switching to Thread 0x7ffff3b7f700 (LWP 13227)]^M
    0x00007ffff6b88b10 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0^M
    (gdb) PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process
    backtrace^M
    (gdb) FAIL: gdb.gdb/selftest.exp: backtrace through signal handler
    
    Pedro Alves:
    Not all targets support thread names, and even those that do, not all
    use the program name as default thread name -- I think that's only true
    for GNU/Linux, actually.  So I think it's best to not expect that, like:
                -re "(Thread .*|Program) received signal SIGINT.*$gdb_prompt $" {
    
    gdb/testsuite/ChangeLog
    2016-01-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
    
    	Fix testsuite compatibility with Guile.
    	* gdb.gdb/selftest.exp (send ^C to child process): Accept also Thread.
    	(thread 1): New test for backtrace through signal handler.

Diff:
---
 gdb/testsuite/ChangeLog            | 6 ++++++
 gdb/testsuite/gdb.gdb/selftest.exp | 7 ++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d7721d5..5e99adf 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-01-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Fix testsuite compatibility with Guile.
+	* gdb.gdb/selftest.exp (send ^C to child process): Accept also Thread.
+	(thread 1): New test for backtrace through signal handler.
+
 2016-01-22  Yao Qi  <yao.qi@linaro.org>
 
 	PR testsuite/19491
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index 4d55cb5..3d98a0c 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -436,8 +436,9 @@ proc test_with_self { executable } {
     if ![target_info exists gdb,nointerrupts] {
 	set description "send ^C to child process"
 	send_gdb "\003"
+	# "Thread 1" is displayed iff Guile support is linked in.
 	gdb_expect {
-	    -re "Program received signal SIGINT.*$gdb_prompt $" {
+	    -re "(Thread 1 .*|Program) received signal SIGINT.*$gdb_prompt $" {
 		pass "$description"
 	    }
 	    -re ".*$gdb_prompt $" {
@@ -453,6 +454,10 @@ proc test_with_self { executable } {
     gdb_test "signal SIGINT" \
 	"Continuing with signal SIGINT.*" \
 	"$description"
+
+    # Switch back to the GDB thread if Guile support is linked in.
+    # "signal SIGINT" could also switch the current thread.
+    gdb_test "thread 1" {\[Switching to thread 1 .*\].*}
     
     # get a stack trace
     #


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]