On Thu, Jun 04, 2009 at 11:06:43AM +0100, Nicholas Clark wrote:
> On Thu, Jun 04, 2009 at 09:14:35AM +0200, H.Merijn Brand wrote:
> 
> > TSTENV = stdio      No saved state, selection will be empty
> > # Failed at op/magic.t line 499
> > #      got 'IGNORE'
> > # expected undef
> > # Failed at op/magic.t line 500
> > #      got 'IGNORE'
> > # expected undef
> > 
> > ../t/op/magic.t.............................................FAILED 76-77
> > 
> > Manual runs fare well
> 
> But smoke runs are in an environment with an inherited handler for SIGPIPE?

These are the lines that fail:

> # Test deleting signals that we never set
> foreach my $sig (qw(__DIE__ _BOGUS_HOOK PIPE THIRSTY)) {
>     is $SIG{$sig}, undef, "$sig is not present";
>     is delete $SIG{$sig}, undef, "delete of $sig returns undef";
> }

I'm guessing that if you compile the appended program and run it under cron,
it will output "Was ignore", rather than "Was default"

Nicholas Clark

#include <signal.h>
#include <stdio.h>

typedef void (*sighandler_t)(int);

int main () {
    sighandler_t was = signal(SIGPIPE, SIG_DFL);

    if (was == SIG_DFL) {
        puts("Was default");
    } else if (was == SIG_IGN) {
        puts("Was ignore");
    } else {
        puts("Was a real handler");
    }
    return 0;
}

Reply via email to