aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.gdb
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2016-01-22 21:21:45 +0100
committerJan Kratochvil <jan.kratochvil@redhat.com>2016-01-22 21:21:45 +0100
commit31d765d3801c63a66312023181edb3af25c03598 (patch)
treedd5c837e623d397b32a8f067c1fb61396a50b57e /gdb/testsuite/gdb.gdb
parentb2bae2f79b11a87af3dbc2a6ca3c0c4987ecfbba (diff)
downloadgdb-31d765d3801c63a66312023181edb3af25c03598.zip
gdb-31d765d3801c63a66312023181edb3af25c03598.tar.gz
gdb-31d765d3801c63a66312023181edb3af25c03598.tar.bz2
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.
Diffstat (limited to 'gdb/testsuite/gdb.gdb')
-rw-r--r--gdb/testsuite/gdb.gdb/selftest.exp7
1 files changed, 6 insertions, 1 deletions
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
#