[binutils-gdb] gdb/testsuite: fix gdb.mi/mi-condbreak-throw.exp failure

Andrew Burgess aburgess@sourceware.org
Fri Sep 8 10:02:11 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=932a49fff332ba4921dc9e38cf45bf65a301f2c6

commit 932a49fff332ba4921dc9e38cf45bf65a301f2c6
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Fri Sep 8 10:45:08 2023 +0100

    gdb/testsuite: fix gdb.mi/mi-condbreak-throw.exp failure
    
    In commit:
    
      commit 3ce8f906be7a55d8c0375e6d360cc53b456d86ae
      Date:   Tue Aug 8 10:45:20 2023 +0100
    
          gdb: MI stopped events when unwindonsignal is on
    
    a new test, gdb.mi/mi-condbreak-throw.exp, was added.  Unfortunately,
    this test would fail when using the native-gdbserver board (and other
    similar boards).
    
    The problem was that one of the expected output patterns included some
    output from the inferior.  When using the native-gdbserver board, this
    output is not printed to GDB's tty, but is instead printed to
    gdbserver's tty, the result is that the expected output no longer
    matches, and the test fails.
    
    Additionally, as the output is actually from the C++ runtime, rather
    than the test's source file, changes to the C++ runtime could cause
    the output to change.
    
    To solve both of these issues, in this commit, I'm removing the
    reference to the inferior's output, and replacing it with '.*', which
    will skip the output if it is present, but is equally happy if the
    output is not present.
    
    After this commit gdb.mi/mi-condbreak-throw.exp now passes on all
    boards, including native-gdbserver.

Diff:
---
 gdb/testsuite/gdb.mi/mi-condbreak-throw.exp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp b/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
index 4151fa18395..7f291244e53 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
@@ -97,8 +97,7 @@ proc run_test { unwind_on_exception } {
 
 	mi_gdb_test "" \
 	    [multi_line \
-		 "terminate called after throwing an instance of 'int'" \
-		 "~\"\\\\nProgram\"" \
+		 ".*~\"\\\\nProgram\"" \
 		 "~\" received signal SIGABRT, Aborted\\.\\\\n\"${out_ln_re}" \
 		 "\\*stopped,reason=\"signal-received\",signal-name=\"SIGABRT\"\[^\r\n\]+frame=\\{addr=\"$::hex\",\[^\r\n\]+\\}\[^\r\n\]+" \
 		 "&\"Error in testing condition for breakpoint $bpnum:\\\\n\"" \


More information about the Gdb-cvs mailing list