[gdb/testsuite] Fix full buffer in gdb.rust/dwindex.exp
authorTom de Vries <tdevries@suse.de>
Thu, 30 Sep 2021 10:02:14 +0000 (12:02 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 30 Sep 2021 10:02:14 +0000 (12:02 +0200)
On ubuntu 18.04.5, I run into:
...
(gdb) mt print objfiles dwindex^M
^M
Object file build/gdb/testsuite/outputs/gdb.rust/dwindex/dwindex:  \
  Objfile at 0x55dab0b87a50, bfd at 0x55dab0b0cfa0, 1095 minsyms^M
^M
Psymtabs:^M
vendor/compiler_builtins/src/int/specialized_div_rem/mod.rs at 0x55dab0db0720^M
  ...
library/std/src/sys/unix/stdio.rs at 0x55dab0d96320^M
ERROR: internal buffer is full.
UNRESOLVED: gdb.rust/dwindex.exp: check if index present
...

Fix this by using -lbl in proc ensure_gdb_index.

Tested on x86_64-linux.

gdb/testsuite/lib/gdb.exp

index b7f3a57c4d935738a99c143d68a83d95f6757800..afdc92eec3fa3fd649e379772afa6ff88b2f5ccf 100644 (file)
@@ -7917,22 +7917,36 @@ proc add_gdb_index { program {style ""} } {
 # string (the default) means .gdb_index; "-dwarf-5" means .debug_names.
 
 proc ensure_gdb_index { binfile {style ""} } {
+    global decimal
+
     set testfile [file tail $binfile]
     set test "check if index present"
-    gdb_test_multiple "mt print objfiles ${testfile}" $test {
-       -re -wrap "gdb_index.*" {
-           return 0
+    set has_index 0
+    gdb_test_multiple "mt print objfiles ${testfile}" $test -lbl {
+       -re "\r\n\\.gdb_index: version ${decimal}(?=\r\n)" {
+           set has_index 1
+           gdb_test_lines "" $gdb_test_name ".*"
        }
-       -re -wrap "debug_names.*" {
-           return 0
+       -re "\r\n\\.debug_names: exists(?=\r\n)" {
+           set has_index 1
+           gdb_test_lines "" $gdb_test_name ".*"
        }
-       -re -wrap "Psymtabs.*" {
-           if { [add_gdb_index $binfile $style] != "1" } {
-               return -1
-           }
-           return 1
+       -re "\r\nPsymtabs:(?=\r\n)" {
+           gdb_test_lines "" $gdb_test_name ".*"
        }
+       -re -wrap "" {
+           fail $gdb_test_name
+       }
+    }
+
+    if { $has_index } {
+       return 0
     }
+
+    if { [add_gdb_index $binfile $style] == "1" } {
+       return 1
+    }
+
     return -1
 }