]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/testsuite] Make gdb.mi/mi-sym-info.exp more robust against timeouts
authorTom de Vries <tdevries@suse.de>
Fri, 30 Apr 2021 09:25:47 +0000 (11:25 +0200)
committerTom de Vries <tdevries@suse.de>
Fri, 30 Apr 2021 09:25:47 +0000 (11:25 +0200)
Once in a while, I run into this timeout:
...
FAIL: gdb.mi/mi-sym-info.exp: List all variables from debug information \
  only (timeout)
...

I can make the timeout reproducible by setting timeout to 8s (instead of the
default 10s) for the duration of that test.

Make the test-case more stable by fixing all timeouts caused by setting
timeout to 5, either by adding with_timeout_factor, or increasing its factor.

Tested on x86_64-linux.  Also tested in parallel with stress -c 5, to simulate
a busy system in another way.

gdb/testsuite/ChangeLog:

2021-04-30  Tom de Vries  <tdevries@suse.de>

* gdb.mi/mi-sym-info.exp: Add with_timeout_factor, and increase
existing timeout factors.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/mi-sym-info.exp

index 10c7d76772f7021ae08e579a4cbeea4980d54b0e..8e021d2284bbd10c2d518b97537b9aab83f35dbd 100644 (file)
@@ -1,3 +1,8 @@
+2021-04-30  Tom de Vries  <tdevries@suse.de>
+
+       * gdb.mi/mi-sym-info.exp: Add with_timeout_factor, and increase
+       existing timeout factors.
+
 2021-04-30  Tom de Vries  <tdevries@suse.de>
 
        * gdb.mi/mi-sym-info.exp: Remove duplicate test.
index f7f574aaeae538f59a6a9d8857384939736bc2c1..18f85182a7b1003ffba33557dadad789e2fa57ce 100644 (file)
@@ -55,42 +55,46 @@ set type_syms \
 
 # Fetch all functions, variables and types without any non-debug
 # symbols.
-set testname "List all functions from debug information only"
-set cmd "111-symbol-info-functions"
-set state 0
-gdb_test_multiple $cmd $testname -prompt "${mi_gdb_prompt}$" {
-    -re "111\\^done,symbols=\{debug=\\\[${symtab_re}" {
-       if { $state == 0 } { incr state }
-       exp_continue
-    }
-    -re ",${symtab_re}" {
-       exp_continue
-    }
-    -re "\\\]\}\r\n${mi_gdb_prompt}$" {
-       if { $state == 1 } {
-           pass $gdb_test_name
-       } else {
-           fail $gdb_test_name
+with_timeout_factor 2 {
+    set testname "List all functions from debug information only"
+    set cmd "111-symbol-info-functions"
+    set state 0
+    gdb_test_multiple $cmd $testname -prompt "${mi_gdb_prompt}$" {
+       -re "111\\^done,symbols=\{debug=\\\[${symtab_re}" {
+           if { $state == 0 } { incr state }
+           exp_continue
+       }
+       -re ",${symtab_re}" {
+           exp_continue
+       }
+       -re "\\\]\}\r\n${mi_gdb_prompt}$" {
+           if { $state == 1 } {
+               pass $gdb_test_name
+           } else {
+               fail $gdb_test_name
+           }
        }
     }
 }
 
-set testname "List all variables from debug information only"
-set cmd "112-symbol-info-variables"
-set state 0
-gdb_test_multiple $cmd $testname -prompt "${mi_gdb_prompt}$" {
-    -re "112\\^done,symbols=\{debug=\\\[${symtab_re}" {
-       if { $state == 0 } { incr state }
-       exp_continue
-    }
-    -re ",${symtab_re}" {
-       exp_continue
-    }
-    -re "\\\]\}\r\n${mi_gdb_prompt}$" {
-       if { $state == 1 } {
-           pass $gdb_test_name
-       } else {
-           fail $gdb_test_name
+with_timeout_factor 2 {
+    set testname "List all variables from debug information only"
+    set cmd "112-symbol-info-variables"
+    set state 0
+    gdb_test_multiple $cmd $testname -prompt "${mi_gdb_prompt}$" {
+       -re "112\\^done,symbols=\{debug=\\\[${symtab_re}" {
+           if { $state == 0 } { incr state }
+           exp_continue
+       }
+       -re ",${symtab_re}" {
+           exp_continue
+       }
+       -re "\\\]\}\r\n${mi_gdb_prompt}$" {
+           if { $state == 1 } {
+               pass $gdb_test_name
+           } else {
+               fail $gdb_test_name
+           }
        }
     }
 }
@@ -150,7 +154,7 @@ gdb_test_multiple $cmd ${testname} -prompt "${mi_gdb_prompt}$" {
     }
 }
 
-with_timeout_factor 2 {
+with_timeout_factor 4 {
     set testname "List all variables"
     set cmd "115-symbol-info-variables --include-nondebug"
     set state 0