[pushed,gdb/testsuite] Enable gdb.arch/s390-disassembler-options.exp for --enable-targets=all

Message ID 20221130174949.9624-1-tdevries@suse.de
State Committed
Headers
Series [pushed,gdb/testsuite] Enable gdb.arch/s390-disassembler-options.exp for --enable-targets=all |

Commit Message

Tom de Vries Nov. 30, 2022, 5:49 p.m. UTC
  On s390x-linux, I run into:
...
DUPLICATE: gdb.arch/s390-disassembler-options.exp: \
  show disassembler-options esa
...

First, reproduce this on x86_64-linux with --enable-targets=all, by replacing
the test for 'istarget "s390*-*-*"' with a test for 'get_set_option_choices
"set architecture" "s390"'.

Fix the DUPLICATE by using with_test_prefix.

Also modernize the test-case by using clean_restart instead of gdb_exit/gdb_start.

Tested on x86_64-linux.
---
 .../gdb.arch/s390-disassembler-options.exp    | 36 ++++++++++---------
 1 file changed, 20 insertions(+), 16 deletions(-)


base-commit: 885d86436c3f9ab0a13f39647860b526faa92cf8
  

Patch

diff --git a/gdb/testsuite/gdb.arch/s390-disassembler-options.exp b/gdb/testsuite/gdb.arch/s390-disassembler-options.exp
index 7ba9e51cc3c..df6c2363069 100644
--- a/gdb/testsuite/gdb.arch/s390-disassembler-options.exp
+++ b/gdb/testsuite/gdb.arch/s390-disassembler-options.exp
@@ -18,39 +18,43 @@ 
 # This test exercises set/show disassembler-options results are preserved
 # across multiple set architecture calls.
 
-if {![istarget "s390*-*-*"]} {
-    verbose "Skipping S390 disassembler options."
-    return
-}
-
-gdb_exit
-gdb_start
+clean_restart
 
-set option "esa"
+set archs [get_set_option_choices "set architecture" "s390"]
 set arch1 "s390:64-bit"
 set arch2 "s390:31-bit"
+foreach arch [list $arch1 $arch2] {
+    if { [lsearch -exact $archs $arch] == -1 } {
+	return
+    }
+}
 
-gdb_test "set architecture $arch1" \
+set option "esa"
+
+with_test_prefix $arch1 {
+    gdb_test "set architecture $arch1" \
 	"The target architecture is set to \"$arch1\"\." \
 	"set architecture $arch1"
 
-gdb_test_no_output "set disassembler-options"
-gdb_test "show disassembler-options" \
+    gdb_test_no_output "set disassembler-options"
+    gdb_test "show disassembler-options" \
 	"The current disassembler options are ''.*" \
 	"show NULL disassembler-options"
 
-gdb_test_no_output "set disassembler-options $option"
-gdb_test "show disassembler-options" \
+    gdb_test_no_output "set disassembler-options $option"
+    gdb_test "show disassembler-options" \
 	"The current disassembler options are '$option'.*" \
 	"show disassembler-options $option"
+}
 
 # Change architectures and verify the disassembler options have been preserved.
 
-gdb_test "set architecture $arch2" \
+with_test_prefix $arch2 {
+    gdb_test "set architecture $arch2" \
 	"The target architecture is set to \"$arch2\"\." \
 	"set architecture $arch2"
 
-gdb_test "show disassembler-options" \
+    gdb_test "show disassembler-options" \
 	"The current disassembler options are '$option'.*" \
 	"show disassembler-options $option"
-
+}