user/dev discussion of public-inbox itself
 help / color / mirror / 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
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

user/dev discussion of public-inbox itself

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://public-inbox.org/meta
	git clone --mirror http://czquwvybam4bgbro.onion/meta
	git clone --mirror http://hjrcffqmbrq6wope.onion/meta
	git clone --mirror http://ou63pmih66umazou.onion/meta

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 meta meta/ http://public-inbox.org/meta \
		meta@public-inbox.org
	public-inbox-index meta

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
	nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta
	nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta
	nntp://news.gmane.io/gmane.mail.public-inbox.general
 note: .onion URLs require Tor: https://www.torproject.org/

code repositories for the project(s) associated with this inbox:

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

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git