diff options
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r-- | gdb/testsuite/lib/compiler.c | 31 | ||||
-rw-r--r-- | gdb/testsuite/lib/compiler.cc | 34 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 33 |
3 files changed, 94 insertions, 4 deletions
diff --git a/gdb/testsuite/lib/compiler.c b/gdb/testsuite/lib/compiler.c new file mode 100644 index 0000000..8eb0d47 --- /dev/null +++ b/gdb/testsuite/lib/compiler.c @@ -0,0 +1,31 @@ +/* Often the behavior of any particular test depends upon what compiler was + used to compile the test. As each test is compiled, this file is + preprocessed by the same compiler used to compile that specific test + (different tests might be compiled by different compilers, particularly + if compiled at different times), and used to generate a *.ci (compiler + info) file for that test. + + I.E., when callfuncs is compiled, a callfuncs.ci file will be generated, + which can then be sourced by callfuncs.exp to give callfuncs.exp access + to information about the compilation environment. + + TODO: It might be a good idea to add expect code that tests each + definition made with 'set" to see if one already exists, and if so + warn about conflicts if it is being set to something else. */ + +/* This needs to be kept in sync with whatis.c and gdb.exp(get_compiler_info). + If this ends up being hairy, we could use a common header file. */ + +#if defined (__STDC__) || defined (_AIX) +set signed_keyword_not_used 0 +#else +set signed_keyword_not_used 1 +#endif + +#if defined (__GNUC__) +set gcc_compiled __GNUC__ +#else +set gcc_compiled 0 +#endif + +return 0 diff --git a/gdb/testsuite/lib/compiler.cc b/gdb/testsuite/lib/compiler.cc new file mode 100644 index 0000000..aa35c75 --- /dev/null +++ b/gdb/testsuite/lib/compiler.cc @@ -0,0 +1,34 @@ +/* Often the behavior of any particular test depends upon what compiler was + used to compile the test. As each test is compiled, this file is + preprocessed by the same compiler used to compile that specific test + (different tests might be compiled by different compilers, particularly + if compiled at different times), and used to generate a *.ci (compiler + info) file for that test. + + I.E., when callfuncs is compiled, a callfuncs.ci file will be generated, + which can then be sourced by callfuncs.exp to give callfuncs.exp access + to information about the compilation environment. + + TODO: It might be a good idea to add expect code that tests each + definition made with 'set" to see if one already exists, and if so + warn about conflicts if it is being set to something else. */ + +#if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6 +set supports_template_debugging 1 +#else +set supports_template_debugging 0 +#endif + +#if defined(__cplusplus) +set supports_template_debugging 1 +#else +set supports_template_debugging 0 +#endif + +#if defined (__GNUC__) +set gcc_compiled __GNUC__ +#else +set gcc_compiled 0 +#endif + +return 0 diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 64ccaa9..a1a839a 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -335,6 +335,31 @@ proc runto_main { } { } +### Continue, and expect to hit a breakpoint. +### Report a pass or fail, depending on whether it seems to have +### worked. Use NAME as part of the test name; each call to +### continue_to_breakpoint should use a NAME which is unique within +### that test file. +proc gdb_continue_to_breakpoint {name} { + global gdb_prompt + set full_name "continue to breakpoint: $name" + + send_gdb "continue\n" + gdb_expect { + -re "Breakpoint .* at .*\r\n$gdb_prompt $" { + pass $full_name + } + -re ".*$gdb_prompt $" { + fail $full_name + } + timeout { + fail "$full_name (timeout)" + } + } +} + + + # gdb_test COMMAND PATTERN MESSAGE -- send a command to gdb; test the result. # # COMMAND is the command to execute, send to GDB with send_gdb. If @@ -901,13 +926,13 @@ proc get_compiler_info {binfile args} { if {![istarget "hppa*-*-hpux*"]} { if { [llength $args] > 0 } { if {$args == "c++"} { - if { [gdb_compile "${srcdir}/${subdir}/compiler.cc" "${binfile}.ci" preprocess {}] != "" } { + if { [gdb_compile "${srcdir}/lib/compiler.cc" "${binfile}.ci" preprocess {}] != "" } { perror "Couldn't make ${binfile}.ci file" return 1; } } } else { - if { [gdb_compile "${srcdir}/${subdir}/compiler.c" "${binfile}.ci" preprocess {}] != "" } { + if { [gdb_compile "${srcdir}/lib/compiler.c" "${binfile}.ci" preprocess {}] != "" } { perror "Couldn't make ${binfile}.ci file" return 1; } @@ -916,7 +941,7 @@ proc get_compiler_info {binfile args} { if { [llength $args] > 0 } { if {$args == "c++"} { if { [eval gdb_preprocess \ - [list "${srcdir}/${subdir}/compiler.cc" "${binfile}.ci"] \ + [list "${srcdir}/lib/compiler.cc" "${binfile}.ci"] \ $args] != "" } { perror "Couldn't make ${binfile}.ci file" return 1; @@ -924,7 +949,7 @@ proc get_compiler_info {binfile args} { } } elseif { $args != "f77" } { if { [eval gdb_preprocess \ - [list "${srcdir}/${subdir}/compiler.c" "${binfile}.ci"] \ + [list "${srcdir}/lib/compiler.c" "${binfile}.ci"] \ $args] != "" } { perror "Couldn't make ${binfile}.ci file" return 1; |