[gdb/testsuite] Fix imported-unit.exp FAIL without psymtabs

The test-case gdb.dwarf2/imported-unit.exp contains a test testing partial
symbols, so when we run the test-case using either target board readnow,
cc-with-gdb-index or cc-with-debug-names, we run into:
...
FAIL: gdb.dwarf2/imported-unit.exp: no static partial symbols in importing unit
...

Fix this by marking the test unsupported if there are no partial symbols.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2020-04-08  Tom de Vries  <tdevries@suse.de>

	* lib/gdb.exp (psymtabs_p): New proc.
	* gdb.dwarf2/imported-unit.exp: Mark "no static partial symbols in
	importing unit" unsupported if there are no partial symbols.
This commit is contained in:
Tom de Vries 2020-04-08 12:05:34 +02:00
parent e21d048f8a
commit 14ca8ecfcb
3 changed files with 40 additions and 10 deletions

View File

@ -1,3 +1,9 @@
2020-04-08 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (psymtabs_p): New proc.
* gdb.dwarf2/imported-unit.exp: Mark "no static partial symbols in
importing unit" unsupported if there are no partial symbols.
2020-04-08 Tom de Vries <tdevries@suse.de>
PR testsuite/25760

View File

@ -149,19 +149,25 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
gdb_test_no_output "set language c++"
set psymtabs_p [psymtabs_p]
# Verify that the partial symtab for the unit importing the partial unit does
# not contain the static partial symbol int, which is defined in the partial
# unit. Test-case for PR25646.
gdb_test "main print psymbols" \
[multi_line \
" Depends on 1 other partial symtabs\." \
"\[^\r\n\]*" \
" Global partial symbols:" \
" `main', function, $hex" \
"" \
".*"] \
"no static partial symbols in importing unit"
set test "no static partial symbols in importing unit"
if { $psymtabs_p } {
gdb_test "main print psymbols" \
[multi_line \
" Depends on 1 other partial symtabs\." \
"\[^\r\n\]*" \
" Global partial symbols:" \
" `main', function, $hex" \
"" \
".*"] \
$test
} else {
unsupported $test
}
# Sanity check
gdb_test "ptype main" "= int \\(void\\)"

View File

@ -6998,6 +6998,24 @@ proc readnow { } {
return 0
}
# Return 1 if partial symbols are available. Otherwise, return 0.
proc psymtabs_p { } {
global gdb_prompt
set cmd "maint info psymtab"
gdb_test_multiple $cmd "" {
-re "$cmd\r\n$gdb_prompt $" {
return 0
}
-re -wrap "" {
return 1
}
}
return 0
}
# Verify that partial symtab expansion for $filename has state $readin.
proc verify_psymtab_expanded { filename readin } {