diff options
author | Tom de Vries <tdevries@suse.de> | 2024-09-10 10:25:07 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2024-09-10 10:25:07 +0200 |
commit | 258c81da3c13971dc7667f30baf506ececd2cc0e (patch) | |
tree | 4c1280da8f8f5fce2e2ea629983456e07291af74 | |
parent | bc13da1980ceec05cff958d72a774b4373c9e00d (diff) | |
download | gdb-258c81da3c13971dc7667f30baf506ececd2cc0e.zip gdb-258c81da3c13971dc7667f30baf506ececd2cc0e.tar.gz gdb-258c81da3c13971dc7667f30baf506ececd2cc0e.tar.bz2 |
[gdb/testsuite] Fix gdb.xml/tdesc-regs.exp on riscv64
When running test-case gdb.xml/tdesc-regs.exp on riscv64-linux, I get:
...
(gdb) set tdesc file single-reg.xml^M
warning: Architecture rejected target-supplied description^M
(gdb) FAIL: gdb.xml/tdesc-regs.exp: set tdesc file single-reg.xml
UNSUPPORTED: gdb.xml/tdesc-regs.exp: register tests
...
The FAIL and UNSUPPORTED are produced here:
...
# If no core registers were specified, assume this target does not
# support target-defined registers. Verify that we get a warning if
# we try to use them. This not only tests the warning, but also
# reminds maintainers to add test support when they add the feature.
if {[string equal ${core-regs} ""]} {
gdb_test "set tdesc file $single_reg_xml" \
"warning: Target-supplied registers are not supported.*" \
"set tdesc file single-reg.xml"
unsupported "register tests"
return 0
}
...
The test-case contains target-specific setting of the core-regs variable, and
adding this for riscv64 bypasses this code and makes the test-case pass.
However, without that change, the test-case shouldn't produce a FAIL since
gdb isn't doing anything wrong.
Fix this by producing instead:
...
PASS: $exp: set tdesc file single-reg.xml
UNSUPPORTED: $exp: register tests (missing architecture-specific core-regs setting)
...
Tested on riscv64-linux.
-rw-r--r-- | gdb/testsuite/gdb.xml/tdesc-regs.exp | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/gdb/testsuite/gdb.xml/tdesc-regs.exp b/gdb/testsuite/gdb.xml/tdesc-regs.exp index 7c8b0b8..344e387 100644 --- a/gdb/testsuite/gdb.xml/tdesc-regs.exp +++ b/gdb/testsuite/gdb.xml/tdesc-regs.exp @@ -80,21 +80,38 @@ switch -glob -- [istarget] { set regdir "i386/" set core-regs {64bit-core.xml 64bit-sse.xml} } + "riscv64*-*-*" { + set architecture "riscv:rv64" + set regdir "riscv/" + set core-regs 64bit-cpu.xml + } } -# If no core registers were specified, assume this target does not -# support target-defined registers. Verify that we get a warning if -# we try to use them. This not only tests the warning, but also -# reminds maintainers to add test support when they add the feature. - set single_reg_xml [gdb_remote_download host \ "$srcdir/$subdir/single-reg.xml"] if {[string equal ${core-regs} ""]} { - gdb_test "set tdesc file $single_reg_xml" \ - "warning: Target-supplied registers are not supported.*" \ - "set tdesc file single-reg.xml" - unsupported "register tests" + set test "set tdesc file single-reg.xml" + set feature_unsupported 0 + set feature_test_unsupported 0 + gdb_test_multiple "set tdesc file $single_reg_xml" $test { + -re -wrap "warning: Target-supplied registers are not supported" { + set feature_unsupported 1 + pass $gdb_test_name + } + -re -wrap "warning: Architecture rejected target-supplied description" { + set feature_test_unsupported 1 + pass $gdb_test_name + } + } + + if { $feature_unsupported } { + unsupported "register tests" + } elseif { $feature_test_unsupported } { + # Remind maintainers to add test support. + unsupported "register tests (missing architecture-specific core-regs setting)" + } + return 0 } |