user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
From: Eric Wong <e@yhbt.net>
To: meta@public-inbox.org
Subject: [PATCH 3/3] tests: check-run: show skipped tests
Date: Fri, 28 Aug 2020 10:13:00 +0000	[thread overview]
Message-ID: <20200828101300.17939-4-e@yhbt.net> (raw)
In-Reply-To: <20200828101300.17939-1-e@yhbt.net>

We'll deduplicate redundant lines and show counts of skipped
tests to ensure it's easy to notice if something is unexpectedly
skipped.
---
 t/run.perl | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

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";
 	}
 }
 

  parent reply	other threads:[~2020-08-28 10:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-28 10:12 [PATCH 0/3] more watch-related stuff Eric Wong
2020-08-28 10:12 ` [PATCH 1/3] watch: flush changes to inbox before updating IMAPTracker Eric Wong
2020-08-28 10:12 ` [PATCH 2/3] imaptracker: update_last: simplify callers Eric Wong
2020-08-28 10:13 ` Eric Wong [this message]
2020-08-28 22:18   ` [PATCH 3/3] tests: check-run: show skipped tests Eric Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://public-inbox.org/README

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200828101300.17939-4-e@yhbt.net \
    --to=e@yhbt.net \
    --cc=meta@public-inbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).