mlawren has asked for the wisdom of the Perl Monks concerning the following question:

I have some tests which are failing only on OpenBSD (and sometimes on MacOS which I assume is related) as follows:

All 8 subtests passed Test Summary Report ------------------- t/App/bif/sync.t (Wstat: 139 Tests: 8 Failed: 0) Non-zero wait status: 139

As you can see the tests are actually passing, but by shifting the non-zero wait status 139 by the appropriate values I get exit: 0 signal:11 core:128. usr/signum.h on OpenBSD says that signal 11 is SIGPIPE.

I installed $SIG{PIPE} handlers in my test script but that didn't change anything. Any ideas on where I should be looking to track down who/what is writing to a closed pipe?

Replies are listed 'Best First'.
Re: Cause of failing tests on OpenBSD due to SIGPIPE?
by stevieb (Canon) on Oct 22, 2015 at 21:14 UTC

    Is this a module on the CPAN? If so, let us know what the name of it is. If not, show us the block of code within the test that is failing, along with the section of code the test is testing.

    Also, if you install the module (presuming it is a module), then run the test like: perl -T t/App/bif/sync.t, do you get the same bad results?

      The distribution is on CPAN: App::bif. It is a command-line application - not a library module. And it won't run under taint mode, that's for sure.

      There is no failing block - for all intensive purposes the tests succeed, except for Test::More complaining about the write to a closed pipe. I just can't seem to ignore those writes, or track down where they are occuring.