]> Sergey Matveev's repositories - public-inbox.git/commitdiff
t/lei-sigpipe.t: ensure SIGPIPE is not ignored instead of not blocked
authorJulien Moutinho <julm+public-inbox@sourcephile.fr>
Fri, 11 Mar 2022 10:42:34 +0000 (11:42 +0100)
committerEric Wong <e@80x24.org>
Mon, 14 Mar 2022 22:05:42 +0000 (22:05 +0000)
Ignoring a signal is different than blocking a signal, and the
"IgnoreSIGPIPE" option of systemd ignores.

[ew: note systemd behavior]

Acked-by: Eric Wong <e@80x24.org>
t/lei-sigpipe.t

index 7fab9aebb0ff0a1faae0a57b2532ff9d2853aa7b..55c208e2740c039327f26855964c94e12bcb5c5e 100644 (file)
@@ -4,20 +4,16 @@
 use strict;
 use v5.10.1;
 use PublicInbox::TestCommon;
 use strict;
 use v5.10.1;
 use PublicInbox::TestCommon;
-use POSIX qw(WTERMSIG WIFSIGNALED SIGPIPE SIG_UNBLOCK SIG_SETMASK sigprocmask);
+use POSIX qw(WTERMSIG WIFSIGNALED SIGPIPE);
 use PublicInbox::OnDestroy;
 
 use PublicInbox::OnDestroy;
 
-# undo systemd (and similar) blocking SIGPIPE, since lei expects to be run
+# undo systemd (and similar) ignoring SIGPIPE, since lei expects to be run
 # from an interactive terminal:
 # https://public-inbox.org/meta/20220227080422.gyqowrxomzu6gyin@sourcephile.fr/
 # from an interactive terminal:
 # https://public-inbox.org/meta/20220227080422.gyqowrxomzu6gyin@sourcephile.fr/
-my $set = POSIX::SigSet->new;
-my $old = POSIX::SigSet->new;
-$set->emptyset or xbail "sigemptyset $!";
-$old->emptyset or xbail "sigemptyset $!";
-$set->addset(SIGPIPE);
-sigprocmask(SIG_UNBLOCK, $set, $old) or xbail "SIG_UNBLOCK: $!";
+my $oldSIGPIPE = $SIG{PIPE};
+$SIG{PIPE} = 'DEFAULT';
 my $cleanup = PublicInbox::OnDestroy->new($$, sub {
 my $cleanup = PublicInbox::OnDestroy->new($$, sub {
-       sigprocmask(SIG_SETMASK, $old);
+       $SIG{PIPE} = $oldSIGPIPE;
 });
 
 test_lei(sub {
 });
 
 test_lei(sub {