qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]