[gdb/testsuite] Fix core file load FAIL in tls-core.exp
authorTom de Vries <tdevries@suse.de>
Thu, 12 Mar 2020 08:50:04 +0000 (09:50 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 12 Mar 2020 08:50:04 +0000 (09:50 +0100)
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  <tdevries@suse.de>

* lib/gdb.exp (gdb_core_cmd): Make "No such file or directory" regexp
more precise.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp

index 19114c29366797e2666f7092e60bd8a08eb55596..3d829b021f70c401138c5dae7fc37281cfae3615 100644 (file)
@@ -1,3 +1,8 @@
+2020-03-12  Tom de Vries  <tdevries@suse.de>
+
+       * lib/gdb.exp (gdb_core_cmd): Make "No such file or directory" regexp
+       more precise.
+
 2020-03-11  Simon Marchi  <simon.marchi@efficios.com>
 
        * lib/gdb.exp (standard_output_file): Use `pwd -W` to convert
index 9e903ba34776a98312236c728fb9c7c4f9fbe996..bb70ef13f2cd737950a55c80e812a1a618dde696 100644 (file)
@@ -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
        }