]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/run.perl
www: drop --subject from "git send-email" instructions
[public-inbox.git] / t / run.perl
index b0ee611a44626184cf8db19c4f781b620cad6be9..cf80a8a17ecedc54304d5280744e5b5d857e4209 100755 (executable)
@@ -168,6 +168,7 @@ my $start_worker = sub {
        my $pid = fork // DIE "fork: $!";
        if ($pid == 0) {
                close $wr if $wr;
+               $SIG{USR1} = undef; # undo parent $SIG{USR1}
                $worker = $$;
                while (1) {
                        my $r = sysread($rd, my $buf, UINT_SIZE);
@@ -182,7 +183,10 @@ my $start_worker = sub {
                        $tb->reset;
                }
                kill 'USR1', $producer if !$eof; # sets $eof in $producer
-               DIE join('', map { "E: $_\n" } @err) if @err;
+               if (@err) { # write to run_log for $sigchld handler
+                       syswrite($run_log, "$$ @err\n");
+                       DIE join('', map { "E: $_\n" } @err);
+               }
                exit(0);
        } else {
                $pids{$pid} = $j;
@@ -254,5 +258,8 @@ for (my $i = $repeat; $i != 0; $i--) {
 print $OLDOUT "1..".($repeat * scalar(@tests))."\n" if $repeat >= 0;
 if ($lei_env && $$ == $owner_pid) {
        my $opt = { 1 => $OLDOUT, 2 => $OLDERR };
+       my $cur_daemon_pid;
+       run_script([qw(lei daemon-pid)], $lei_env, { 1 => \$cur_daemon_pid });
        run_script([qw(lei daemon-kill)], $lei_env, $opt);
+       DIE "lei daemon restarted\n" if $cur_daemon_pid != $lei_daemon_pid;
 }