[gdb/testsuite] Fix gdb.threads/fork-plus-threads.exp with check-readmore
authorTom de Vries <tdevries@suse.de>
Sun, 8 May 2022 11:53:41 +0000 (13:53 +0200)
committerTom de Vries <tdevries@suse.de>
Sun, 8 May 2022 11:53:41 +0000 (13:53 +0200)
When running test-case gdb.threads/fork-plus-threads.exp with check-readmore,
I run into:
...
[Inferior 11 (process 7029) exited normally]^M
[Inferior 1 (process 6956) exited normally]^M
FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=off: \
  inferior 1 exited (timeout)
...

The problem is that the regexp consuming the "Inferior exited normally"
messages:
- consumes more than one of those messages at a time, but
- counts only one of those messages.

Fix this by adopting a line-by-line approach, which deals with those messages
one at a time.

Tested on x86_64-linux with native, check-read1 and check-readmore.

gdb/testsuite/gdb.threads/fork-plus-threads.exp

index 26fbef72941956a9ee03edd90a65a67a01859666..c05ac4a5a0376f3d7615b504169d7ea4a50d47d8 100644 (file)
@@ -88,23 +88,15 @@ proc do_test { detach-on-fork } {
 
     set test "inferior 1 exited"
     gdb_test_multiple "" $test {
-       -re "Cannot remove breakpoints" {
+       -re "^Cannot remove breakpoints" {
            set saw_cannot_remove_breakpoints 1
            exp_continue
        }
-       -re "Thread \[^\r\n\]+ stopped\\." {
+       -re "^\\\[Thread \[^\r\n\]+ stopped\\." {
            set saw_thread_stopped 1
            exp_continue
        }
-       -re "(Thread|LWP) \[^\r\n\]+ exited" {
-           # Avoid timeout with check-read1
-           exp_continue
-       }
-       -re "New (Thread|LWP) \[^\r\n\]+" {
-           # Avoid timeout with check-read1
-           exp_continue
-       }
-       -re "Inferior ($::decimal) \(\[^\r\n\]+\) exited normally" {
+       -re "^\\\[Inferior ($::decimal) \(\[^\r\n\]+\) exited normally\\\]" {
            set infnum $expect_out(1,string)
            incr num_inferior_exits_seen
            incr inferior_exits_seen($infnum) 1
@@ -115,6 +107,10 @@ proc do_test { detach-on-fork } {
                exp_continue
            }
        }
+       -re "^\[^\r\n]*\r\n" {
+           # Skip line.
+           exp_continue
+       }
     }
 
     # Verify that we got all the inferior exits we expected.