aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2024-09-10 10:25:07 +0200
committerTom de Vries <tdevries@suse.de>2024-09-10 10:25:07 +0200
commit258c81da3c13971dc7667f30baf506ececd2cc0e (patch)
tree4c1280da8f8f5fce2e2ea629983456e07291af74
parentbc13da1980ceec05cff958d72a774b4373c9e00d (diff)
downloadgdb-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.exp35
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
}