[gdb/testsuite] Fix gdb.mi/mi-disassemble.exp with check-read1
authorTom de Vries <tdevries@suse.de>
Thu, 20 Oct 2022 07:02:18 +0000 (09:02 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 20 Oct 2022 07:02:18 +0000 (09:02 +0200)
With test-case gdb.mi/mi-disassemble.exp and check-read1 I run into:
...
FAIL: gdb.mi/mi-disassemble.exp: disassemble /b main
FAIL: gdb.mi/mi-disassemble.exp: get valueof "*((unsigned char *) 0x400549)"
...

The problem for both FAILs is that the output is parsed using
gdb_test_multiple, which has implicit clauses using $gdb_prompt, which can
match before the explicit clauses using $mi_gdb_prompt.

Fix this by passing -prompt "$mi_gdb_prompt$" to gdb_test_multiple.

Tested on x86-64-linux.

gdb/testsuite/gdb.mi/mi-disassemble.exp
gdb/testsuite/lib/mi-support.exp

index cac3689071ce2d492aecdbb0a78876e212894daf..d2b60f1bb22da24e791ae2a5739558741fe7557e 100644 (file)
@@ -269,7 +269,7 @@ proc test_disassembly_opcode_format {} {
     # then disassemble using the MI command.
     set longest_insn_bytes ""
     set longest_insn_addr ""
-    gdb_test_multiple "disassemble /b main" "" {
+    gdb_test_multiple "disassemble /b main" "" -prompt "$::mi_gdb_prompt$" {
        -re "^disassemble /b main\r\n" {
            exp_continue
        }
index 2b534f5d871426792bef8a968ab72f4740cb433b..e537d3b546bf6f693ed942eb70561626a7967c14 100644 (file)
@@ -2849,7 +2849,7 @@ proc mi_get_valueof { fmt exp default {test ""} } {
     }
 
     set val ${default}
-    gdb_test_multiple "print${fmt} ${exp}" "$test" {
+    gdb_test_multiple "print${fmt} ${exp}" "$test" -prompt "$::mi_gdb_prompt$" {
        -re "~\"\\$\[0-9\]* = (\[^\r\n\]*)\\\\n\"\r\n\\^done\r\n$mi_gdb_prompt$" {
            set val $expect_out(1,string)
            pass "$test"