Alex Bennée <alex.ben...@linaro.org> writes:
> Some tests seem to run slower on CI systems but we don't really get > visibility of which it is unless we happen to hang the test at the end > of a run. This hacky change exposes "slow" tests in the tap output. > > [AJB: my perl is rusty, I'm sure this could be more idiomatic] > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> ping? It would be nice to get this or something similar in 4.2 > --- > scripts/tap-driver.pl | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > > diff --git a/scripts/tap-driver.pl b/scripts/tap-driver.pl > index 6621a5cd671..0fe748d5de6 100755 > --- a/scripts/tap-driver.pl > +++ b/scripts/tap-driver.pl > @@ -29,6 +29,7 @@ use strict; > use Getopt::Long (); > use TAP::Parser; > use Term::ANSIColor qw(:constants); > +use Time::HiRes qw( time ); > > my $ME = "tap-driver.pl"; > my $VERSION = "2018-11-30"; > @@ -111,7 +112,7 @@ sub decorate_result ($); > sub extract_tap_comment ($); > sub handle_tap_bailout ($); > sub handle_tap_plan ($); > -sub handle_tap_result ($); > +sub handle_tap_result ($$); > sub is_null_string ($); > sub main (); > sub report ($;$); > @@ -220,12 +221,18 @@ sub testsuite_error ($) > report "ERROR", "- $_[0]"; > } > > -sub handle_tap_result ($) > +sub handle_tap_result ($$) > { > $testno++; > my $result_obj = shift; > + my $time = shift; > > my $test_result = stringify_result_obj $result_obj; > + > + if ($time > 1.0) { > + $test_result = $test_result . sprintf(" (%0.1fs)", $time); > + } > + > my $string = $result_obj->number; > > my $description = $result_obj->description; > @@ -312,6 +319,9 @@ sub main () > { > my $iterator = TAP::Parser::Iterator::Stream->new(\*STDIN); > my $parser = TAP::Parser->new ({iterator => $iterator }); > + my ($start, $end); > + > + $start = time(); > > STDOUT->autoflush(1); > while (defined (my $cur = $parser->next)) > @@ -325,7 +335,9 @@ sub main () > } > elsif ($cur->is_test) > { > - handle_tap_result ($cur); > + $end = time(); > + handle_tap_result ($cur, $end - $start); > + $start = time(); > } > elsif ($cur->is_bailout) > { -- Alex Bennée