]> Sergey Matveev's repositories - public-inbox.git/commitdiff
t/lei-sigpipe: attempt to improve diagnostics for stuck test
authorEric Wong <e@80x24.org>
Thu, 17 Feb 2022 21:02:33 +0000 (21:02 +0000)
committerEric Wong <e@80x24.org>
Fri, 18 Feb 2022 00:16:29 +0000 (00:16 +0000)
This may help diagnose a difficult-to-reproduce test failure on NixOS.

Link: https://public-inbox/meta/20211209013743.okzgim7bbrpahks7@sourcephile.fr/
t/lei-sigpipe.t

index d9738b07bd8e5ddce780e8125b1207a1686cc9ab..6b2772a69a60796aa3277e76126560815bd9dcb0 100644 (file)
@@ -27,11 +27,17 @@ EOM
                }
 
                lei_ok(qw(import), $f) if $imported++ == 0;
-               open my $errfh, '+>', "$ENV{HOME}/stderr.log" or xbail $!;
+               open my $errfh, '+>>', "$ENV{HOME}/stderr.log" or xbail $!;
                my $opt = { run_mode => 0, 2 => $errfh, 1 => $w };
                my $cmd = [qw(lei q -q -t), @$out, 'z:1..'];
                my $tp = start_script($cmd, undef, $opt);
                close $w;
+               vec(my $rvec = '', fileno($r), 1) = 1;
+               if (!select($rvec, undef, undef, 30)) {
+                       seek($errfh, 0, 0) or xbail $!;
+                       my $s = do { local $/; <$errfh> };
+                       xbail "lei q had no output after 30s, stderr=$s";
+               }
                is(sysread($r, my $buf, 1), 1, 'read one byte');
                close $r; # trigger SIGPIPE
                $tp->join;