diff options
author | Kevin Buettner <kevinb@redhat.com> | 2021-06-09 19:31:18 -0700 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2021-06-11 14:56:20 -0700 |
commit | 72c4daa36a3d35d578533d208668eb3ff9e7708f (patch) | |
tree | 555dadd9901d70c40b7c05b4d6f6e430d40f1dc8 /gdb/testsuite/gdb.base | |
parent | 4cc2e60671b926ad7e5ed3928c4e54e456c7c344 (diff) | |
download | gdb-72c4daa36a3d35d578533d208668eb3ff9e7708f.zip gdb-72c4daa36a3d35d578533d208668eb3ff9e7708f.tar.gz gdb-72c4daa36a3d35d578533d208668eb3ff9e7708f.tar.bz2 |
print-symbol-loading.exp: Allow libc symbols to be already loaded
One consequence of changing libpthread_name_p() in solib.c to (also)
match libc is that the symbols for libc will now be loaded by
solib_add() in solib.c. I think this is mostly harmless because
we'll likely want these symbols to be loaded anyway, but it did cause
two failures in gdb.base/print-symbol-loading.exp.
Specifically...
1)
sharedlibrary .*
(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib off: load shared-lib
now looks like this:
sharedlibrary .*
Symbols already loaded for /lib64/libc.so.6
(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib off: load shared-lib
2)
sharedlibrary .*
Loading symbols for shared libraries: .*
(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib brief: load shared-lib
now looks like this:
sharedlibrary .*
Loading symbols for shared libraries: .*
Symbols already loaded for /lib64/libc.so.6
(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib brief: load shared-lib
Fixing case #2 ended up being easier than #1. #1 had been using
gdb_test_no_output to correctly match this no-output case. I
ended up replacing it with gdb_test_multiple, matching the exact
expected output for each of the two now acceptable cases.
For case #2, I simply added an optional non-capturing group
for the potential new output.
gdb/testsuite/ChangeLog:
* gdb.base/print-symbol-loading.exp (proc test_load_shlib):
Allow "Symbols already loaded for..." messages.
Diffstat (limited to 'gdb/testsuite/gdb.base')
-rw-r--r-- | gdb/testsuite/gdb.base/print-symbol-loading.exp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gdb/testsuite/gdb.base/print-symbol-loading.exp b/gdb/testsuite/gdb.base/print-symbol-loading.exp index b8eb1c8..93ec43a 100644 --- a/gdb/testsuite/gdb.base/print-symbol-loading.exp +++ b/gdb/testsuite/gdb.base/print-symbol-loading.exp @@ -96,6 +96,7 @@ test_load_core full proc test_load_shlib { print_symbol_loading } { global binfile + global gdb_prompt with_test_prefix "shlib ${print_symbol_loading}" { clean_restart ${binfile} gdb_test_no_output "set auto-solib-add off" @@ -106,12 +107,20 @@ proc test_load_shlib { print_symbol_loading } { set test_name "load shared-lib" switch ${print_symbol_loading} { "off" { - gdb_test_no_output "sharedlibrary .*" \ - ${test_name} + set cmd "sharedlibrary .*" + set cmd_regex [string_to_regexp $cmd] + gdb_test_multiple $cmd $test_name { + -re "^$cmd_regex\r\n$gdb_prompt $" { + pass $test_name + } + -re "^$cmd_regex\r\nSymbols already loaded for\[^\r\n\]*\\/libc\\.\[^\r\n\]*\r\n$gdb_prompt $" { + pass $test_name + } + } } "brief" { gdb_test "sharedlibrary .*" \ - "Loading symbols for shared libraries: \\.\\*" \ + "Loading symbols for shared libraries: \\.\\*.*?(?:Symbols already loaded for .*?libc)?" \ ${test_name} } "full" { |