about summary refs log tree commit
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-06-29 00:30:52 +0000
committerEric Wong <e@yhbt.net>2020-06-30 03:08:28 +0000
commit62575c514f07260cff5865b7bf122e41178b0476 (patch)
tree417fb33d2ff09a62d5bb14a93a7e5de400840e04
parenta49178807cb318c19082c1b970aab942acffd565 (diff)
downloadpublic-inbox-62575c514f07260cff5865b7bf122e41178b0476.tar.gz
This will help us catch warnings in new code and notice
inadvertantly skipped tests.
-rwxr-xr-xt/run.perl15
1 files changed, 13 insertions, 2 deletions
diff --git a/t/run.perl b/t/run.perl
index 017ca3e8..b1a0d2fe 100755
--- a/t/run.perl
+++ b/t/run.perl
@@ -61,7 +61,19 @@ our ($worker, $worker_test);
 sub test_status () {
         $? = 255 if $? == 0 && !$tb->is_passing;
         my $status = $? ? 'not ok' : 'ok';
-        print OLDOUT "$status $worker_test\n" if $log_suffix ne '';
+        chdir($cwd) or DIE "chdir($cwd): $!";
+        if ($log_suffix ne '') {
+                my $log = $worker_test;
+                $log =~ s/\.t\z/$log_suffix/;
+                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;
+                } else {
+                        print OLDERR "could not open: $log: $!\n";
+                }
+                print OLDOUT "$status $worker_test\n";
+        }
 }
 
 # Test::Builder or Test2::Hub may call exit() from plan(skip_all => ...)
@@ -112,7 +124,6 @@ my $start_worker = sub {
                         my $t = unpack('I', $buf);
                         run_test($todo->[$t]);
                         $tb->reset;
-                        chdir($cwd) or DIE "chdir: $!";
                 }
                 kill 'USR1', $producer if !$eof; # sets $eof in $producer
                 DIE join('', map { "E: $_\n" } @err) if @err;