[gdb/testsuite] Fix command result testing in mi-complete.exp
authorTom de Vries <tdevries@suse.de>
Tue, 23 Jul 2019 08:38:33 +0000 (10:38 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 23 Jul 2019 08:38:33 +0000 (10:38 +0200)
commit5ba29434765feed692b6342a8b0f853050be2402
tree265d704277a8fca3f51e43b371ca6f56b5cda04d
parent89356123a17c27548c7e71f4f000b1f74e551c31
[gdb/testsuite] Fix command result testing in mi-complete.exp

When running gdb.mi/mi-complete.exp in conjunction with:
...
$ stress -c $(($(cat /proc/cpuinfo | grep -c "^processor") + 1))
...
we get less than 50% full passes:
...
$ for n in  $(seq 1 100); do \
    make V=1 -O check \
      'RUNTESTFLAGS=gdb.mi/mi-complete.exp --target_board=unix'; \
  done 2>&1 \
  | grep "expected passes" | sort | uniq -c
     45 # of expected passes            7
      9 # of expected passes            8
     46 # of expected passes            9
...

A diff between a passing and failing gdb.log shows this difference:
...
-&"set max-completions 1\n"
 2-complete br
+&"set max-completions 1\n"
...

The problem is that the test-case issues the "set max-completion <n>" command,
and without waiting for the output issues a next command, and tries to parse
the results of both commands, expecting a specific interleaving of the various
output streams.

Fix the FAIL by waiting for the result of the "set max-completion <n>" command
before issuing another command.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

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

PR testsuite/24711
* gdb.mi/mi-complete.exp: Wait for "set max-completions" result before
issuing next command.
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/mi-complete.exp