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

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
This commit is contained in:
Simon Marchi 2019-10-14 00:37:30 -04:00
parent 6acc1a0b9d
commit 9223170f68
2 changed files with 23 additions and 9 deletions

View 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

View 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]