gdb/testsuite: fix occasional failure in gdb.mi/mi-multi-commands.exp
authorAndrew Burgess <aburgess@redhat.com>
Mon, 9 May 2022 15:49:03 +0000 (16:49 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Mon, 9 May 2022 15:57:20 +0000 (16:57 +0100)
In bug PR gdb/29036, another failure was reported for the test
gdb.mi/mi-multi-commands.exp.  This test sends two commands to GDB as
a single write, and then checks that both commands are executed.

The problem that was encountered here is that the output of the first
command, which looks like this:

  ^done,value="\"FIRST COMMAND\""

Is actually produced in parts, first the '^done' is printed, then the
',value="\"FIRST COMMAND\"" is printed.

What was happening is that some characters from the second command
were being echoed after the '^done' had been printed, but before the
value part had been printed.  To avoid this issue I've relaxed the
pattern that checks for the first command a little.  With this fix in
place the occasional failure in this test is no longer showing up.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29036

gdb/testsuite/gdb.mi/mi-multi-commands.exp

index d00e0aaea8b3a2c0c5b6f7525ee9f2454a5c0e52..58187b1581556a148e1d1e409a610a56e611aa97 100644 (file)
@@ -100,7 +100,7 @@ proc run_test { args } {
        set seen_second_message false
 
        gdb_test_multiple "" "look for first command output, command length $i" -prompt "$mi_gdb_prompt" {
-           -re "\\^done,value=\"\\\\\"FIRST COMMAND\\\\\"\"" {
+           -re "\\^done.*,value=\"\\\\\"FIRST COMMAND\\\\\"\"" {
                set seen_first_message true
                exp_continue
            }