[gdb/testsuite] Fix gdb.dwarf2/gdb-index-nodebug.exp with cc-with-gdb-index
authorTom de Vries <tdevries@suse.de>
Mon, 2 Aug 2021 13:31:51 +0000 (15:31 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 2 Aug 2021 13:31:51 +0000 (15:31 +0200)
When running with target board cc-with-gdb-index, we run into:
...
(gdb) save gdb-index .^M
Error while writing index for `gdb-index-nodebug': \
  Cannot use an index to create the index^M
(gdb) FAIL: gdb.dwarf2/gdb-index-nodebug.exp: try to save gdb index
...

Fix this by detecting an already present index, and marking the test
unsupported.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2021-08-02  Tom de Vries  <tdevries@suse.de>

* gdb.dwarf2/gdb-index-nodebug.exp: Mark unsupported when index
already present.

gdb/testsuite/gdb.dwarf2/gdb-index-nodebug.exp

index 27b46d4cea50e9a39bd3e83ca110c976b9d94d99..6eb34f9f2c455e85edb0164bdd7cb33a5fb3b0c5 100644 (file)
@@ -22,7 +22,26 @@ if {[prepare_for_testing "failed to prepare" "${testfile}" \
     return -1
 }
 
+set have_index [have_index $binfile]
+set have_index_re \
+    [list \
+        "Error while writing index for \[^\r\n\]*:" \
+        "Cannot use an index to create the index"]
+set have_index_re [join $have_index_re]
+set readnow_p [readnow]
+
 set index_file ${testfile}.gdb-index
 # The bug was that gdb would crash here.
-gdb_test_no_output "save gdb-index [file dirname ${index_file}]" \
-    "try to save gdb index"
+set cmd "save gdb-index [file dirname ${index_file}]"
+gdb_test_multiple $cmd "try to save gdb index" {
+    -re -wrap $have_index_re {
+       if { $have_index != "" || $readnow_p } {
+           unsupported $gdb_test_name
+       } else {
+           fail $gdb_test_name
+       }
+    }
+    -re -wrap "^$cmd" {
+       pass $gdb_test_name
+    }
+}