[gdb/testsuite] Add missing initial prompt read in multidictionary.exp
authorTom de Vries <tdevries@suse.de>
Tue, 23 Jul 2019 13:15:20 +0000 (15:15 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 23 Jul 2019 13:15:20 +0000 (15:15 +0200)
When running multidictionary.exp in conjunction with:
...
$ stress -c $(($(cat /proc/cpuinfo | grep -c "^processor") + 1))
...
we get:
...
Running gdb/testsuite/gdb.dwarf2/multidictionary.exp ...
ERROR: Couldn't load multidictionary into gdb.

                === gdb Summary ===

nr of unresolved testcases       1
...

The multidictionary test-case needs -readnow, and achieves this using:
...
gdb_spawn_with_cmdline_opts "-readnow"
gdb_load
...
but the initial gdb prompt is not read.  Usually, the following gdb_load
command accidentally consumes that initial prompt (at the gdb_expect for the
kill command in gdb_file_cmd).  But under high load, that doesn't happen and
we run into the error.

Fix this by consuming the initial gdb prompt after spawning gdb.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2019-07-23  Tom de Vries  <tdevries@suse.de>

PR testsuite/24842
* gdb.dwarf2/multidictionary.exp: Consume initial prompt after
gdb_spawn_with_cmdline_opts.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/multidictionary.exp

index 00096c0eed6ef2973c5bedae6f618ccb291e8fd1..01a70aa98d1a8ec3432979446740139371c9c893 100644 (file)
@@ -1,3 +1,9 @@
+2019-07-23  Tom de Vries  <tdevries@suse.de>
+
+       PR testsuite/24842
+       * gdb.dwarf2/multidictionary.exp: Consume initial prompt after
+       gdb_spawn_with_cmdline_opts.
+
 2019-07-23  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
 
        * gdb.arch/arm-cmse-sgstubs.c: New test.
index 5588ef214411ae40221a212c8a04964c04f240dd..c307ed8adcb75c3d1fd46b55d5d5344433342439 100644 (file)
@@ -148,6 +148,12 @@ if {[build_executable $testfile.exp $testfile [list $asm_file $srcfile] {}] \
 
 # We force the DIEs above to be read in via "-readnow".
 gdb_spawn_with_cmdline_opts "-readnow"
+set test "initial prompt"
+gdb_test_multiple "" $test {
+    -re ".*$gdb_prompt $" {
+       pass "$test"
+    }
+}
 gdb_load $binfile
 
 # All we need to do is check whether GDB is alive.  Without