[gdb/testsuite] Prevent timeout in gdb.ada/float-bits.exp
authorTom de Vries <tdevries@suse.de>
Fri, 2 Dec 2022 07:56:42 +0000 (08:56 +0100)
committerTom de Vries <tdevries@suse.de>
Fri, 2 Dec 2022 07:56:42 +0000 (08:56 +0100)
Recent commit 32a5aa26256 ("[gdb/testsuite] Fix gdb.ada/float-bits.exp
for powerpc64le") started using command "maint print architecture", which
produces ~275 lines.

Rewrite the corresponding gdb_test_multiple to read line-by-line, to prevent
timeouts on slower test setups.

Note that this doesn't fix a timeout in the test-case on aarch64 due to:
...
gdbarch_dump: read_core_file_mappings = <0x817438>
(gdb) aarch64_dump_tdep: Lowest pc = 0x0x8000
...

Tested on x86_64-linux.

gdb/testsuite/gdb.ada/float-bits.exp

index 921fe36a4bdc391a5792e35bc875605f28aa1bdd..dab16a602868dd0601b81578882661a020d68258 100644 (file)
@@ -75,14 +75,21 @@ set gdb_long_double_size [float_size "16llf#0#" ]
 
 # Get the used long double format.
 set long_double_format ""
-gdb_test_multiple "maint print architecture" "" {
-    -re "\r\ngdbarch_dump: long_double_format = (\[^\r\n\]*)" {
+set cmd "maint print architecture"
+gdb_test_multiple $cmd  "" {
+    -re "^[string_to_regexp $cmd](?=\r\n)" {
+       exp_continue
+    }
+    -re "^\r\ngdbarch_dump: long_double_format = (\[^\r\n\]*)(?=\r\n)" {
        set long_double_format $expect_out(1,string)
        exp_continue
     }
-    -re -wrap "" {
+    -re "^\r\n$gdb_prompt $" {
        pass $gdb_test_name
     }
+    -re "^\r\n(\[^\r\n\]*)(?=\r\n)" {
+       exp_continue
+    }
 }
 
 # Set default values for 128-bit IEEE quad long doubles.