From 1281424ccf3d05410398f4f495443d9e54426f91 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 12 Mar 2020 09:50:04 +0100 Subject: [PATCH] [gdb/testsuite] Fix core file load FAIL in tls-core.exp After deinstalling package glibc-debugsource, I run into the following FAIL with test-case gdb.threads/tls-core.exp: ... (gdb) core gdb/testsuite/outputs/gdb.threads/tls-core/tls-core.core^M [New LWP 30081]^M [New LWP 30080]^M [Thread debugging using libthread_db enabled]^M Using host libthread_db library "/lib64/libthread_db.so.1".^M Core was generated by `gdb/testsuite/outputs/gdb.threads/tls-core/tls-c'.^M Program terminated with signal SIGABRT, Aborted.^M 51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.^M [Current thread is 1 (Thread 0x7fb568d4b700 (LWP 30081))]^M (gdb) FAIL: gdb.threads/tls-core.exp: native: load core file (file not found) ... The problem is that this gdb_test_multiple clause in gdb_core_cmd: ... -re ": No such file or directory.*\r\n$gdb_prompt $" { fail "$test (file not found)" return -1 } ... triggers on the message about raise.c, while it is intended to catch: ... $ gdb (gdb) core bla /home/vries/bla: No such file or directory. ... Fix this by making the regexp more precise: ... - -re ": No such file or directory.*\r\n$gdb_prompt $" { + -re "$core: No such file or directory.*\r\n$gdb_prompt $" { ... Tested on x86_64-linux. Also tested the test-case with this patch in place to verify that the regexp still triggers: ... - set core_loaded [gdb_core_cmd $corefile $test] + set core_loaded [gdb_core_cmd $corefile/bla $test] ... gdb/testsuite/ChangeLog: 2020-03-12 Tom de Vries * lib/gdb.exp (gdb_core_cmd): Make "No such file or directory" regexp more precise. --- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/lib/gdb.exp | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 19114c29366..3d829b021f7 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-03-12 Tom de Vries + + * lib/gdb.exp (gdb_core_cmd): Make "No such file or directory" regexp + more precise. + 2020-03-11 Simon Marchi * lib/gdb.exp (standard_output_file): Use `pwd -W` to convert diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 9e903ba3477..bb70ef13f2c 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -4648,7 +4648,7 @@ proc gdb_core_cmd { core test } { fail "$test (bad file format)" return -1 } - -re ": No such file or directory.*\r\n$gdb_prompt $" { + -re "$core: No such file or directory.*\r\n$gdb_prompt $" { fail "$test (file not found)" return -1 } -- 2.30.2