]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/testsuite] Fix gdb.arch/riscv-tdesc-regs.exp
authorTom de Vries <tdevries@suse.de>
Wed, 4 Sep 2024 13:37:28 +0000 (15:37 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 4 Sep 2024 13:37:28 +0000 (15:37 +0200)
On riscv64-linux, with test-case gdb.arch/riscv-tdesc-regs.exp I get:
...
(gdb) info registers fflags^M
fflags         0x0      NV:0 DZ:0 OF:0 UF:0 NX:0^M
(gdb) FAIL: gdb.arch/riscv-tdesc-regs.exp: info registers fflags
info registers frm^M
frm            0x0      FRM:0 [RNE (round to nearest; ties to even)]^M
(gdb) FAIL: gdb.arch/riscv-tdesc-regs.exp: info registers frm
...

The FAILs are produced by:
...
foreach reg {fflags frm} {
    gdb_test_multiple "info registers $reg" "" {
        -re "^info registers $reg\r\n" {
            exp_continue
        }

        -wrap -re "^Invalid register `$reg`" {
            fail $gdb_test_name
        }

        -wrap -re "^$reg\\s+\[^\r\n\]+" {
            pass $gdb_test_name
}
    }
}
...

The first clause is meant to consume the command.

The '^' char was updated to mean "consume command", so that clause no longer
works since it now attempts to consume the command twice.

Also, it's unnecessary because the following clauses start with ^.

Then, the second clause is unnecessary because there's a default clause
producing the FAIL.

Fix this by simplifying to:
...
foreach reg {fflags frm} {
    gdb_test "info registers $reg" "^$reg\\s+\[^\r\n\]+"
}
...

Tested on riscv64-linux.

Approved-By: Andrew Burgess <aburgess@redhat.com>
gdb/testsuite/gdb.arch/riscv-tdesc-regs.exp

index bd4ba38390a5dba42f25815db434b76b72dc3c50..58859d161b673fb8c8dc6fed8dce23e41c5e8590 100644 (file)
@@ -156,17 +156,5 @@ gdb_test_no_output "set tdesc filename $remote_file" \
     "load the target description that lacks fflags and frm"
 
 foreach reg {fflags frm} {
-    gdb_test_multiple "info registers $reg" "" {
-       -re "^info registers $reg\r\n" {
-           exp_continue
-       }
-
-       -wrap -re "^Invalid register `$reg`" {
-           fail $gdb_test_name
-       }
-
-       -wrap -re "^$reg\\s+\[^\r\n\]+" {
-           pass $gdb_test_name
-       }
-    }
+    gdb_test "info registers $reg" "^$reg\\s+\[^\r\n\]+"
 }