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 <[email protected]> --- 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) { -- 2.20.1
