[gdb/testsuite] Enable gdb.arch/s390-disassembler-options.exp for --enable-targets=all
authorTom de Vries <tdevries@suse.de>
Wed, 30 Nov 2022 17:49:16 +0000 (18:49 +0100)
committerTom de Vries <tdevries@suse.de>
Wed, 30 Nov 2022 17:49:16 +0000 (18:49 +0100)
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/testsuite/gdb.arch/s390-disassembler-options.exp

index 7ba9e51cc3c2de0db2fc39bdce4bb4990667617c..df6c2363069dc054178b0b2b9b9a5c59b2c247a7 100644 (file)
 # 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"
-
+}