X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=t%2Frun.perl;h=e3e3e07512fbd852edd1e0233399e2955c526a6a;hp=b1a0d2fe154c844b1c4e198468e5061cfd117288;hb=4a2cabdf41a835ca92c8806de90b866df1bc999c;hpb=64f4a7c22d570097f316a5cbaf25b99a412bf54d diff --git a/t/run.perl b/t/run.perl index b1a0d2fe..e3e3e075 100755 --- a/t/run.perl +++ b/t/run.perl @@ -15,6 +15,7 @@ use PublicInbox::TestCommon; use Cwd qw(getcwd); use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev); use Errno qw(EINTR); +use Fcntl qw(:seek); use POSIX qw(_POSIX_PIPE_BUF WNOHANG); my $jobs = 1; my $repeat = 1; @@ -65,14 +66,31 @@ sub test_status () { if ($log_suffix ne '') { my $log = $worker_test; $log =~ s/\.t\z/$log_suffix/; + my $skip = ''; if (open my $fh, '<', $log) { my @not_ok = grep(!/^(?:ok |[ \t]*#)/ms, <$fh>); pop @not_ok if $not_ok[-1] =~ /^[0-9]+\.\.[0-9]+$/; - print OLDERR map { "# $log: $_" } @not_ok; + my $pfx = "# $log: "; + print OLDERR map { $pfx.$_ } @not_ok; + seek($fh, 0, SEEK_SET) or die "seek: $!"; + + # show unique skip texts and the number of times + # each text was skipped + local $/; + my @sk = (<$fh> =~ m/^ok [0-9]+ (# skip [^\n]+)/mgs); + if (@sk) { + my %nr; + $nr{$_}++ for @sk; + for (@sk) { + my $n = delete $nr{$_} or next; + print OLDERR "$pfx$_ ($n)\n"; + } + $skip = ' # total skipped: '.scalar(@sk); + } } else { print OLDERR "could not open: $log: $!\n"; } - print OLDOUT "$status $worker_test\n"; + print OLDOUT "$status $worker_test$skip\n"; } }