diff options
author | Eric Wong <e@yhbt.net> | 2020-08-28 10:13:00 +0000 |
---|---|---|
committer | Eric Wong <e@yhbt.net> | 2020-08-28 22:19:28 +0000 |
commit | 4a2cabdf41a835ca92c8806de90b866df1bc999c (patch) | |
tree | c4844a9ded257ad92a3612655f1a8c14138be52c | |
parent | 64f4a7c22d570097f316a5cbaf25b99a412bf54d (diff) | |
download | public-inbox-4a2cabdf41a835ca92c8806de90b866df1bc999c.tar.gz |
We'll deduplicate redundant lines and show counts of skipped tests to ensure it's easy to notice if something is unexpectedly skipped.
-rwxr-xr-x | t/run.perl | 22 |
1 files changed, 20 insertions, 2 deletions
@@ -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"; } } |