Skip to content

Commit

Permalink
[gdb/testsuite] Add untested case in gdb.gdb/complaints.exp
Browse files Browse the repository at this point in the history
When building gdb with "-Wall -O2 -g -flto=auto", I run into:
...
(gdb) call clear_complaints()^M
No symbol "clear_complaints" in current context.^M
(gdb) FAIL: gdb.gdb/complaints.exp: clear complaints
...

The problem is that lto has optimized away clear_complaints, and consequently
the selftests cannot run.

Fix this by:
- using info function to detect presence of clear_complaints
- handling the absence of clear_complaints by calling untested
...
(gdb) UNTESTED: gdb.gdb/complaints.exp: \
  Cannot find clear_complaints, skipping test
...

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2021-09-03  Tom de Vries  <[email protected]>

	* gdb.gdb/complaints.exp: Use untested if clear_complaints cannot
	be found.
  • Loading branch information
vries committed Sep 3, 2021
1 parent 0b99a66 commit 7a6cb96
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions gdb/testsuite/gdb.gdb/complaints.exp
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,26 @@ proc test_empty_complaint { cmd msg } {
}

proc test_empty_complaints { } {
global decimal

set re [multi_line \
"All functions matching regular expression \[^:\]*:" \
"" \
"File \[^\r\n\]*/complaints\\.c:" \
"$decimal:\tvoid clear_complaints\\(\\);"]

set found 0
gdb_test_multiple "info function ^clear_complaints()$" "" {
-re -wrap $re {
set found 1
}
-re -wrap "" {
}
}
if { ! $found } {
untested "Cannot find clear_complaints, skipping test"
return 0
}

test_empty_complaint "call clear_complaints()" \
"clear complaints"
Expand Down

0 comments on commit 7a6cb96

Please sign in to comment.