Adjust self tests to cope with GDB built as a C++ program

gdb/testsuite/
2015-02-27  Pedro Alves  <palves@redhat.com>

	* gdb.gdb/complaints.exp (test_initial_complaints): Also accept
	"true" for boolean result.
	* gdb.gdb/selftest.exp (test_with_self): Also accept full
	prototype of main.
This commit is contained in:
Pedro Alves 2014-10-22 15:14:41 +01:00
parent e992c591af
commit a37bfa3001
3 changed files with 16 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2015-02-27 Pedro Alves <palves@redhat.com>
* gdb.gdb/complaints.exp (test_initial_complaints): Also accept
"true" for boolean result.
* gdb.gdb/selftest.exp (test_with_self): Also accept full
prototype of main.
2015-02-27 Pedro Alves <palves@redhat.com>
* lib/unbuffer_output.c: New file.

View File

@ -43,9 +43,11 @@ proc test_initial_complaints { } {
gdb_test "call complaint (&symfile_complaints, symfile_complaints->root->fmt)" \
"During symbol reading, Register a complaint."
# Check that there is only one thing in the list
# Check that there is only one thing in the list. How the boolean
# result is output depends on whether GDB is built as a C or C++
# program.
gdb_test "print symfile_complaints->root->next == &complaint_sentinel" \
".\[0-9\]+ = 1" "list has one entry"
".\[0-9\]+ = \(1|true\)" "list has one entry"
# Add a second complaint, expect it
gdb_test "call complaint (&symfile_complaints, \"Testing! Testing! Testing!\")" \

View File

@ -288,9 +288,13 @@ proc test_with_self { executable } {
return -1
}
# When GDB is built as a C++ program, disassemble shows the full
# prototype.
set cxx_main_args_re [string_to_regexp "(int, char**)"]
# disassemble yourself
gdb_test "x/10i main" \
"x/10i.*main.*main.$decimal.*main.$decimal.*" \
"x/10i.*main.*main($cxx_main_args_re)?.$decimal.*main($cxx_main_args_re)?.$decimal.*" \
"Disassemble main"
# Set a breakpoint at main