From: Julien Moutinho Date: Fri, 11 Mar 2022 10:42:34 +0000 (+0100) Subject: t/lei-sigpipe.t: ensure SIGPIPE is not ignored instead of not blocked X-Git-Tag: v1.8.0~22 X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=commitdiff_plain;h=f1e4e14793d155ea7d6ed7a6858b668e97c7e5d8 t/lei-sigpipe.t: ensure SIGPIPE is not ignored instead of not blocked Ignoring a signal is different than blocking a signal, and the "IgnoreSIGPIPE" option of systemd ignores. [ew: note systemd behavior] Acked-by: Eric Wong --- diff --git a/t/lei-sigpipe.t b/t/lei-sigpipe.t index 7fab9aeb..55c208e2 100644 --- a/t/lei-sigpipe.t +++ b/t/lei-sigpipe.t @@ -4,20 +4,16 @@ 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; -# 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/ -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 { - sigprocmask(SIG_SETMASK, $old); + $SIG{PIPE} = $oldSIGPIPE; }); test_lei(sub {