From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 46AD0385F022 for ; Tue, 17 Mar 2020 08:06:19 +0000 (GMT) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 58333AB95 for ; Tue, 17 Mar 2020 08:06:18 +0000 (UTC) Subject: Re: [PATCH][gdb/testsuite] Give up after consecutive timeouts in completion-support.exp From: Tom de Vries To: gdb-patches@sourceware.org References: <20200316175925.GA5989@delia> Autocrypt: addr=tdevries@suse.de; keydata= xsBNBF0ltCcBCADDhsUnMMdEXiHFfqJdXeRvgqSEUxLCy/pHek88ALuFnPTICTwkf4g7uSR7 HvOFUoUyu8oP5mNb4VZHy3Xy8KRZGaQuaOHNhZAT1xaVo6kxjswUi3vYgGJhFMiLuIHdApoc u5f7UbV+egYVxmkvVLSqsVD4pUgHeSoAcIlm3blZ1sDKviJCwaHxDQkVmSsGXImaAU+ViJ5l CwkvyiiIifWD2SoOuFexZyZ7RUddLosgsO0npVUYbl6dEMq2a5ijGF6/rBs1m3nAoIgpXk6P TCKlSWVW6OCneTaKM5C387972qREtiArTakRQIpvDJuiR2soGfdeJ6igGA1FZjU+IsM5ABEB AAHNH1RvbSBkZSBWcmllcyA8dGRldnJpZXNAc3VzZS5kZT7CwKsEEwEIAD4WIQSsnSe5hKbL MK1mGmjuhV2rbOJEoAUCXSW0JwIbAwUJA8JnAAULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAh CRDuhV2rbOJEoBYhBKydJ7mEpsswrWYaaO6FXats4kSgc48H/Ra2lq5p3dHsrlQLqM7N68Fo eRDf3PMevXyMlrCYDGLVncQwMw3O/AkousktXKQ42DPJh65zoXB22yUt8m0g12xkLax98KFJ 5NyUloa6HflLl+wQL/uZjIdNUQaHQLw3HKwRMVi4l0/Jh/TygYG1Dtm8I4o708JS4y8GQxoQ UL0z1OM9hyM3gI2WVTTyprsBHy2EjMOu/2Xpod95pF8f90zBLajy6qXEnxlcsqreMaqmkzKn 3KTZpWRxNAS/IH3FbGQ+3RpWkNGSJpwfEMVCeyK5a1n7yt1podd1ajY5mA1jcaUmGppqx827 8TqyteNe1B/pbiUt2L/WhnTgW1NC1QDOwE0EXSW0JwEIAM99H34Bu4MKM7HDJVt864MXbx7B 1M93wVlpJ7Uq+XDFD0A0hIal028j+h6jA6bhzWto4RUfDl/9mn1StngNVFovvwtfzbamp6+W pKHZm9X5YvlIwCx131kTxCNDcF+/adRW4n8CU3pZWYmNVqhMUiPLxElA6QhXTtVBh1RkjCZQ Kmbd1szvcOfaD8s+tJABJzNZsmO2hVuFwkDrRN8Jgrh92a+yHQPd9+RybW2l7sJv26nkUH5Z 5s84P6894ebgimcprJdAkjJTgprl1nhgvptU5M9Uv85Pferoh2groQEAtRPlCGrZ2/2qVNe9 XJfSYbiyedvApWcJs5DOByTaKkcAEQEAAcLAkwQYAQgAJhYhBKydJ7mEpsswrWYaaO6FXats 4kSgBQJdJbQnAhsMBQkDwmcAACEJEO6FXats4kSgFiEErJ0nuYSmyzCtZhpo7oVdq2ziRKD3 twf7BAQBZ8TqR812zKAD7biOnWIJ0McV72PFBxmLIHp24UVe0ZogtYMxSWKLg3csh0yLVwc7 H3vldzJ9AoK3Qxp0Q6K/rDOeUy3HMqewQGcqrsRRh0NXDIQk5CgSrZslPe47qIbe3O7ik/MC q31FNIAQJPmKXX25B115MMzkSKlv4udfx7KdyxHrTSkwWZArLQiEZj5KG4cCKhIoMygPTA3U yGaIvI/BGOtHZ7bEBVUCFDFfOWJ26IOCoPnSVUvKPEOH9dv+sNy7jyBsP5QxeTqwxC/1ZtNS DUCSFQjqA6bEGwM22dP8OUY6SC94x1G81A9/xbtm9LQxKm0EiDH8KBMLfQ== Message-ID: <84bde5b5-c06e-ced0-065c-fbefc73b4989@suse.de> Date: Tue, 17 Mar 2020 09:06:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200316175925.GA5989@delia> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-25.0 required=5.0 tests=GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2020 08:06:20 -0000 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 > + } > } > } > >