gdb.mi/list-thread-groups-available.exp: read entries one by one instead of increasin...
authorSimon Marchi <simon.marchi@polymtl.ca>
Mon, 14 Oct 2019 04:37:30 +0000 (00:37 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Mon, 14 Oct 2019 16:12:24 +0000 (12:12 -0400)
Commit 580f1034 ("Increase timeout in
gdb.mi/list-thread-groups-available.exp") changed
gdb.mi/list-thread-groups-available.exp to significantly increase the
timeout, which was necessary for when running with make check-read1.

Pedro suggested a better alternative, which is to use gdb_test_multiple
and consume one entry at a time.  This patch does that.

gdb/testsuite/ChangeLog:

* gdb.mi/list-thread-groups-available.exp: Read entries one by
one instead of increasing timeout.

Change-Id: I51b689458503240f24e401f054e6583d9172ebdf

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/list-thread-groups-available.exp

index ba7248962907e76d0f64161871d219bbf63a221e..ce6e0f221a99424d933e5236cdbd82d547b5d0ba 100644 (file)
@@ -1,3 +1,8 @@
+2019-10-14  Simon Marchi <simon.marchi@polymtl.ca>
+
+       * gdb.mi/list-thread-groups-available.exp: Read entries one by
+       one instead of increasing timeout.
+
 2019-10-13  Tom de Vries  <tdevries@suse.de>
 
        PR record/25038
index ab5c716a57a86809b360f86037f909d0c79c3c8a..3a7517ff484b1a3cee838cbce523a7d13361bffd 100644 (file)
@@ -54,15 +54,24 @@ set cores_re "cores=\\\[(\"$decimal\"(,\"$decimal\")*)?\\\]"
 # List all available processes.
 set process_entry_re "{${id_re},${type_re}(,$description_re)?(,$user_re)?(,$cores_re)?}"
 
-# Increase the timeout: when running with `make check-read1`, this can take
-# a bit of time, as there is a lot of output generated, hence a lot of read
-# syscalls.
-with_read1_timeout_factor 10 {
-    mi_gdb_test \
-       "-list-thread-groups --available" \
-       "\\^done,groups=\\\[${process_entry_re}(,$process_entry_re)*\\\]" \
-       "list available thread groups"
-}
+# The list can be long, so read entries one by one to avoid hitting the
+# timeout (especially when running with check-read1).
+gdb_test_multiple "-list-thread-groups --available" "list available thread groups" {
+    -re "\\^done,groups=\\\[" {
+       # The beginning of the response.
+       exp_continue
+    }
+
+    -re "${process_entry_re}," {
+       # All entries except the last one.
+       exp_continue
+    }
+
+    -re "${process_entry_re}\\\]\r\n${mi_gdb_prompt}" {
+       # The last entry.
+       pass $gdb_test_name
+    }
+} $mi_gdb_prompt
 
 # List specific processes, make sure there are two entries.
 set spawn_id_1 [remote_spawn target $binfile]