From dd473473033f865258b85b5cb0001e64b03ad9ad Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 20 Apr 2023 11:28:51 -0600 Subject: [PATCH] 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 f5b6096ecb0..4078fa408d1 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 de1e53243fb..388eb949e37 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 73cbdaf90ca..3a2b10a8c13 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 2cc80fbb988..deb3ace2987 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 c3673fab8e8..7586e0a4256 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 d0dfbd59764..8cbcbe7e1a8 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 2cd175f098b..ae081448553 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 54aa6b54ee1..c0bc079f5f9 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" -- 2.30.2