[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH] scripts/tap-driver: report "slow" tests (HACK)
From: |
Alex Bennée |
Subject: |
Re: [RFC PATCH] scripts/tap-driver: report "slow" tests (HACK) |
Date: |
Tue, 19 Nov 2019 07:54:58 +0000 |
User-agent: |
mu4e 1.3.5; emacs 27.0.50 |
Alex Bennée <address@hidden> 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 <address@hidden>
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