From: Tom de Vries <tdevries@suse.de>
To: gdb-patches@sourceware.org
Subject: Re: [PATCH][gdb/testsuite] Give up after consecutive timeouts in completion-support.exp
Date: Tue, 17 Mar 2020 09:06:17 +0100 [thread overview]
Message-ID: <84bde5b5-c06e-ced0-065c-fbefc73b4989@suse.de> (raw)
In-Reply-To: <20200316175925.GA5989@delia>
On 16-03-2020 18:59, Tom de Vries wrote:
> Hi,
>
> When running test-case gdb.linespec/cpcompletion.exp with target board
> unix/-flto/-O0/-flto-partition=none/-ffat-lto-objects, we run into lots of
> timeouts, in particular with this pattern:
> ...
> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: \
> cmd complete "b template2_"
> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: \
> tab complete "b template2_st" (timeout)
> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: \
> cmd complete "b template2_st"
> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: \
> tab complete "b template2_str" (timeout)
> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: \
> cmd complete "b template2_str"
> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: \
> tab complete "b template2_stru" (timeout)
> ...
>
> Fix this by detecting timeouts in test_complete_prefix_range_re and giving up
> after 3 consecutive timeouts.
>
> This reduces testing time from ~39m to ~9m.
>
> Tested on x86_64-linux.
>
> OK for trunk?
>
Um, sorry, I accidentally committed this patch. [ I used this patch to
shorten testing time for another patch and then committed both instead
of just that other patch. ]
I'll leave it in for now since it doesn't cause problems AFAICT, and
reverting will only cause noise, in case we keep it as is.
So, I'll wait for review comments to follow up on this, unless of course
someone objects.
Thanks,
- Tom
> [gdb/testsuite] Give up after consecutive timeouts in completion-support.exp
>
> ---
> gdb/testsuite/lib/completion-support.exp | 27 +++++++++++++++++++++++++--
> 1 file changed, 25 insertions(+), 2 deletions(-)
>
> diff --git a/gdb/testsuite/lib/completion-support.exp b/gdb/testsuite/lib/completion-support.exp
> index 03959e4c7f..18eac827f5 100644
> --- a/gdb/testsuite/lib/completion-support.exp
> +++ b/gdb/testsuite/lib/completion-support.exp
> @@ -108,13 +108,19 @@ proc test_gdb_complete_tab_unique { input_line complete_line_re append_char_re }
>
> set test "tab complete \"$input_line\""
> send_gdb "$input_line\t"
> + set res 1
> gdb_test_multiple "" "$test" {
> -re "^$complete_line_re$append_char_re$" {
> pass "$test"
> }
> + timeout {
> + fail "$test (timeout)"
> + set res -1
> + }
> }
>
> clear_input_line $test
> + return $res
> }
>
> # Test that completing INPUT_LINE with TAB completes to "INPUT_LINE +
> @@ -242,7 +248,10 @@ proc test_gdb_complete_none { input_line } {
> proc test_gdb_complete_unique_re { input_line complete_line_re {append_char " "} {max_completions 0}} {
> set append_char_re [string_to_regexp $append_char]
> if { [readline_is_used] } {
> - test_gdb_complete_tab_unique $input_line $complete_line_re $append_char_re
> + if { [test_gdb_complete_tab_unique $input_line $complete_line_re \
> + $append_char_re] == -1 } {
> + return -1
> + }
> }
>
> # Trim INPUT_LINE and COMPLETE LINE, for the case we're completing
> @@ -266,6 +275,7 @@ proc test_gdb_complete_unique_re { input_line complete_line_re {append_char " "}
> }
>
> test_gdb_complete_cmd_unique $input_line $expected_output_re
> + return 1
> }
>
> # Like TEST_GDB_COMPLETE_UNIQUE_RE, but COMPLETE_LINE is a string, not
> @@ -301,9 +311,22 @@ proc test_complete_prefix_range_re {input completion_re start {end -1}} {
> set end [string length $input]
> }
>
> + set timeouts 0
> + set max_timeouts 3
> for {set i $start} {$i < $end} {incr i} {
> set line [string range $input 0 $i]
> - test_gdb_complete_unique_re "$line" $completion_re
> + set res [test_gdb_complete_unique_re "$line" $completion_re]
> + if { $res == -1 } {
> + incr timeouts
> + } else {
> + if { $timeouts > 0 } {
> + set timeouts 0
> + }
> + }
> + if { $timeouts == $max_timeouts } {
> + verbose -log "Consecutive timeouts in test_complete_prefix_range_re, giving up"
> + break
> + }
> }
> }
>
>
next prev parent reply other threads:[~2020-03-17 8:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-16 17:59 Tom de Vries
2020-03-17 8:06 ` Tom de Vries [this message]
2020-03-17 14:30 ` Simon Marchi
2020-03-17 14:53 ` Tom de Vries
2020-03-17 15:00 ` Simon Marchi
2020-03-19 6:58 ` Tom de Vries
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=84bde5b5-c06e-ced0-065c-fbefc73b4989@suse.de \
--to=tdevries@suse.de \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox