From dd473473033f865258b85b5cb0001e64b03ad9ad Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 20 Apr 2023 11:28:51 -0600 Subject: Use gnat_runtime_has_debug_info in Ada catchpoint tests This changes the Ada catchpoint tests to use gnat_runtime_has_debug_info. This simplifies the code. --- gdb/testsuite/gdb.ada/catch_assert_if.exp | 28 +------------------------ gdb/testsuite/gdb.ada/catch_ex.exp | 18 ++++------------ gdb/testsuite/gdb.ada/catch_ex_std.exp | 27 ++++++++---------------- gdb/testsuite/gdb.ada/excep_handle.exp | 24 +++++----------------- gdb/testsuite/gdb.ada/mi_catch_assert.exp | 33 +----------------------------- gdb/testsuite/gdb.ada/mi_catch_ex.exp | 31 ++-------------------------- gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp | 32 +---------------------------- gdb/testsuite/gdb.ada/mi_ex_cond.exp | 33 +++--------------------------- 8 files changed, 25 insertions(+), 201 deletions(-) diff --git a/gdb/testsuite/gdb.ada/catch_assert_if.exp b/gdb/testsuite/gdb.ada/catch_assert_if.exp index f5b6096..4078fa4 100644 --- a/gdb/testsuite/gdb.ada/catch_assert_if.exp +++ b/gdb/testsuite/gdb.ada/catch_assert_if.exp @@ -15,7 +15,7 @@ load_lib "ada.exp" -require allow_ada_tests +require allow_ada_tests gnat_runtime_has_debug_info standard_ada_testfile bla @@ -25,35 +25,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional clean_restart ${testfile} -###################################################################### -# 1. Try catching all exceptions to check that runtime supports it. # -###################################################################### - set eol "\[\r\n\]+" set sp "\[ \t\]*" -if {![runto_main]} { - return 0 -} - -set msg "insert catchpoint on all Ada exceptions" -gdb_test_multiple "catch exception" $msg { - -re "Catchpoint $decimal: all Ada exceptions$eol$gdb_prompt $" { - pass $msg - } - -re "Your Ada runtime appears to be missing some debugging information.*$eol$gdb_prompt $" { - # If the runtime was not built with enough debug information, - # or if it was stripped, we can not test exception - # catchpoints. - unsupported $msg - return -1 - } -} - -################################################## -# 2. Try catching conditional failed assertion. # -################################################## - # Here is the scenario: # - Restart the debugger from scratch, runto_main # We'll catch assertions if Global_Var = 2 diff --git a/gdb/testsuite/gdb.ada/catch_ex.exp b/gdb/testsuite/gdb.ada/catch_ex.exp index de1e532..388eb94 100644 --- a/gdb/testsuite/gdb.ada/catch_ex.exp +++ b/gdb/testsuite/gdb.ada/catch_ex.exp @@ -15,7 +15,7 @@ load_lib "ada.exp" -require allow_ada_tests +require allow_ada_tests gnat_runtime_has_debug_info standard_ada_testfile foo @@ -44,19 +44,9 @@ if {![runto_main]} { return 0 } -set msg "insert catchpoint on all Ada exceptions" -gdb_test_multiple "catch exception" $msg { - -re "Catchpoint $any_nb: all Ada exceptions$eol$gdb_prompt $" { - pass $msg - } - -re "Your Ada runtime appears to be missing some debugging information.*$eol$gdb_prompt $" { - # If the runtime was not built with enough debug information, - # or if it was stripped, we can not test exception - # catchpoints. - unsupported $msg - return -1 - } -} +gdb_test "catch exception" \ + "Catchpoint $any_nb: all Ada exceptions" \ + "insert catchpoint on all Ada exceptions" gdb_test "info break" \ "$info_break_header$eol.*$catch_exception_info" \ diff --git a/gdb/testsuite/gdb.ada/catch_ex_std.exp b/gdb/testsuite/gdb.ada/catch_ex_std.exp index 73cbdaf..3a2b10a 100644 --- a/gdb/testsuite/gdb.ada/catch_ex_std.exp +++ b/gdb/testsuite/gdb.ada/catch_ex_std.exp @@ -17,7 +17,7 @@ require allow_shlib_tests load_lib "ada.exp" -require allow_ada_tests +require allow_ada_tests gnat_runtime_has_debug_info standard_ada_testfile foo @@ -69,23 +69,12 @@ if {![runto_main]} { return 0 } -set can_catch_exceptions 0 -gdb_test_multiple "catch exception some_kind_of_error" "" { - -re "Catchpoint \[0-9\]+: `some_kind_of_error' Ada exception\r\n$gdb_prompt $" { - pass $gdb_test_name - set can_catch_exceptions 1 - } +gdb_test "catch exception some_kind_of_error" \ + "Catchpoint \[0-9\]+: `some_kind_of_error' Ada exception" - -re "Your Ada runtime appears to be missing some debugging information.\r\nCannot insert Ada exception catchpoint in this configuration.\r\n$gdb_prompt $" { - unsupported $gdb_test_name - } -} - -if { $can_catch_exceptions } { - gdb_test "cont" \ - "Catchpoint \[0-9\]+, .* at .*foo\.adb:\[0-9\]+.*" \ - "caught the exception" +gdb_test "cont" \ + "Catchpoint \[0-9\]+, .* at .*foo\.adb:\[0-9\]+.*" \ + "caught the exception" - gdb_test "print \$_ada_exception = some_package.some_kind_of_error'Address" \ - " = true" -} +gdb_test "print \$_ada_exception = some_package.some_kind_of_error'Address" \ + " = true" diff --git a/gdb/testsuite/gdb.ada/excep_handle.exp b/gdb/testsuite/gdb.ada/excep_handle.exp index 2cc80fb..deb3ace 100644 --- a/gdb/testsuite/gdb.ada/excep_handle.exp +++ b/gdb/testsuite/gdb.ada/excep_handle.exp @@ -15,7 +15,7 @@ load_lib "ada.exp" -require allow_ada_tests +require allow_ada_tests gnat_runtime_has_debug_info standard_ada_testfile foo @@ -40,32 +40,18 @@ set catchpoint_program_error_msg \ set catchpoint_storage_error_msg \ "Catchpoint $decimal, exception at $hex in foo \\\(\\\).*at .*foo.adb:$decimal$eol$decimal$sp$when Storage_Error =>" -############################################ -# Check that runtime supports catchpoint. # -############################################ - if {![runto_main]} { return 0 } -set msg "insert catchpoint on all Ada exceptions handlers" -gdb_test_multiple "catch handlers" $msg { - -re "Catchpoint $decimal: all Ada exceptions handlers$eol$gdb_prompt $" { - pass $msg - } - -re "Your Ada runtime appears to be missing some debugging information.*$eol$gdb_prompt $" { - # If the runtime was not built with enough debug information, - # or if it was stripped, we can not test exception handlers - # catchpoints. - unsupported $msg - return -1 - } -} - ############################################ # 1. Try catching all exceptions handlers. # ############################################ +gdb_test "catch handlers" \ + "Catchpoint $decimal: all Ada exceptions handlers" \ + "insert catchpoint on all Ada exceptions handlers" + # Continue. The program should stop at first exception handling. gdb_test "continue" \ diff --git a/gdb/testsuite/gdb.ada/mi_catch_assert.exp b/gdb/testsuite/gdb.ada/mi_catch_assert.exp index c3673fa..7586e0a 100644 --- a/gdb/testsuite/gdb.ada/mi_catch_assert.exp +++ b/gdb/testsuite/gdb.ada/mi_catch_assert.exp @@ -15,7 +15,7 @@ load_lib "ada.exp" -require allow_ada_tests +require allow_ada_tests gnat_runtime_has_debug_info standard_ada_testfile bla @@ -23,37 +23,6 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional return -1 } -# Some global variables used to simplify the maintenance of some of -# the regular expressions below. -set eol "\[\r\n\]+" -set sp "\[ \t\]*" - -# Before going any further, verify that we can insert exception -# catchpoints... That way, we won't have to do this while doing -# the actual GDB/MI testing. - -clean_restart ${testfile} - -if {![runto_main]} { - return 0 -} - -set msg "insert catchpoint on all Ada exceptions" -gdb_test_multiple "catch exception" $msg { - -re "Catchpoint $decimal: all Ada exceptions$eol$gdb_prompt $" { - pass $msg - } - -re "Your Ada runtime appears to be missing some debugging information.*\[\r\n\]+$gdb_prompt $" { - # If the runtime was not built with enough debug information, - # or if it was stripped, we can not test exception - # catchpoints. - unsupported $msg - return -1 - } -} - -# Now, we can start the GDB/MI testing itself... - load_lib mi-support.exp set MIFLAGS "-i=mi" diff --git a/gdb/testsuite/gdb.ada/mi_catch_ex.exp b/gdb/testsuite/gdb.ada/mi_catch_ex.exp index d0dfbd5..8cbcbe7 100644 --- a/gdb/testsuite/gdb.ada/mi_catch_ex.exp +++ b/gdb/testsuite/gdb.ada/mi_catch_ex.exp @@ -15,7 +15,7 @@ load_lib "ada.exp" -require allow_ada_tests +require allow_ada_tests gnat_runtime_has_debug_info standard_ada_testfile foo @@ -23,36 +23,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional return -1 } -# Some global variables used to simplify the maintenance of some of +# A global variable used to simplify the maintenance of some of # the regular expressions below. set any_nb "\[0-9\]+" -set eol "\[\r\n\]+" - -# Before going any further, verify that we can insert exception -# catchpoints... That way, we won't have to do this while doing -# the actual GDB/MI testing. - -clean_restart ${testfile} - -if {![runto_main]} { - return 0 -} - -set msg "insert catchpoint on all Ada exceptions" -gdb_test_multiple "catch exception" $msg { - -re "Catchpoint $any_nb: all Ada exceptions$eol$gdb_prompt $" { - pass $msg - } - -re "Your Ada runtime appears to be missing some debugging information.*\[\r\n\]+$gdb_prompt $" { - # If the runtime was not built with enough debug information, - # or if it was stripped, we can not test exception - # catchpoints. - unsupported $msg - return -1 - } -} - -# Now, we can start the GDB/MI testing itself... load_lib mi-support.exp set MIFLAGS "-i=mi" diff --git a/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp b/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp index 2cd175f..ae08144 100644 --- a/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp +++ b/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp @@ -15,7 +15,7 @@ load_lib "ada.exp" -require allow_ada_tests +require allow_ada_tests gnat_runtime_has_debug_info standard_ada_testfile foo @@ -23,36 +23,6 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional return -1 } -# A global variable used to simplify the maintenance of some of -# the regular expressions below. -set eol "\[\r\n\]+" - -# Before going any further, verify that we can insert exception -# handlers catchpoints... That way, we won't have to do this while -# doing the actual GDB/MI testing. - -clean_restart ${testfile} - -if {![runto_main]} { - return 0 -} - -set msg "insert catchpoint on all Ada exceptions handlers" -gdb_test_multiple "catch handlers" $msg { - -re "Catchpoint $decimal: all Ada exceptions handlers$eol$gdb_prompt $" { - pass $msg - } - -re "Your Ada runtime appears to be missing some debugging information.*\[\r\n\]+$gdb_prompt $" { - # If the runtime was not built with enough debug information, - # or if it was stripped, we can not test exception - # catchpoints. - unsupported $msg - return -1 - } -} - -# Now, we can start the GDB/MI testing itself... - load_lib mi-support.exp set MIFLAGS "-i=mi" diff --git a/gdb/testsuite/gdb.ada/mi_ex_cond.exp b/gdb/testsuite/gdb.ada/mi_ex_cond.exp index 54aa6b5..c0bc079 100644 --- a/gdb/testsuite/gdb.ada/mi_ex_cond.exp +++ b/gdb/testsuite/gdb.ada/mi_ex_cond.exp @@ -15,7 +15,7 @@ load_lib "ada.exp" -require allow_ada_tests +require allow_ada_tests gnat_runtime_has_debug_info standard_ada_testfile foo @@ -23,36 +23,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional return -1 } -# # Some global variables used to simplify the maintenance of some of -# # the regular expressions below. +# A global variable used to simplify the maintenance of some of +# the regular expressions below. set any_nb "\[0-9\]+" -set eol "\[\r\n\]+" - -# Before going any further, verify that we can insert exception -# catchpoints... That way, we won't have to do this while doing -# the actual GDB/MI testing. - -clean_restart ${testfile} - -if {![runto_main]} { - return 0 -} - -set msg "insert catchpoint on all Ada exceptions" -gdb_test_multiple "catch exception" $msg { - -re "Catchpoint $any_nb: all Ada exceptions$eol$gdb_prompt $" { - pass $msg - } - -re "Your Ada runtime appears to be missing some debugging information.*\[\r\n\]+$gdb_prompt $" { - # If the runtime was not built with enough debug information, - # or if it was stripped, we can not test exception - # catchpoints. - unsupported $msg - return -1 - } -} - -# Now, we can start the GDB/MI testing itself... load_lib mi-support.exp set MIFLAGS "-i=mi" -- cgit v1.1