In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/8aed2c65cec8aaa88a3d43cb2992c5383ce2e6e8?hp=8341ee1e81d127dbdfb6941f86b35b72fab49837>

- Log -----------------------------------------------------------------
commit 8aed2c65cec8aaa88a3d43cb2992c5383ce2e6e8
Author: David Mitchell <[email protected]>
Date:   Sat Apr 14 10:28:35 2012 +0100

    op/sigdispatch.t: skip tests on prodn releases
    
    RT #89718 showed a couple of tests hanging on old linux kernels.
    Until such time as someone can reliably probe for this, just
    completely skip those tests on production releases.
-----------------------------------------------------------------------

Summary of changes:
 t/op/sigdispatch.t |   28 ++++++++++++++++++----------
 1 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/t/op/sigdispatch.t b/t/op/sigdispatch.t
index 332507f..8161a71 100644
--- a/t/op/sigdispatch.t
+++ b/t/op/sigdispatch.t
@@ -89,16 +89,24 @@ TODO:
     is $gotit, 2, 'Received fifth signal';
 
     # test unsafe signal handlers in combination with exceptions
-    my $action = POSIX::SigAction->new(sub { $gotit--, die }, 
POSIX::SigSet->new, 0);
-    POSIX::sigaction(&POSIX::SIGALRM, $action);
-    eval {
-        alarm 1;
-        my $set = POSIX::SigSet->new;
-        POSIX::sigprocmask(&POSIX::SIG_BLOCK, undef, $set);
-        is $set->ismember(&POSIX::SIGALRM), 0, "SIGALRM is not blocked on 
attempt $_";
-        POSIX::sigsuspend($set);
-    } for 1..2;
-    is $gotit, 0, 'Received both signals';
+
+    SKIP: {
+       # #89718: on old linux kernels, this test hangs. No-ones thought
+       # of a reliable way to probe for this, so for now, just skip the
+       # tests on production releases
+       skip("some OSes hang here", 3) if (int($]*1000) & 1) == 0;
+
+       my $action = POSIX::SigAction->new(sub { $gotit--, die }, 
POSIX::SigSet->new, 0);
+       POSIX::sigaction(&POSIX::SIGALRM, $action);
+       eval {
+           alarm 1;
+           my $set = POSIX::SigSet->new;
+           POSIX::sigprocmask(&POSIX::SIG_BLOCK, undef, $set);
+           is $set->ismember(&POSIX::SIGALRM), 0, "SIGALRM is not blocked on 
attempt $_";
+           POSIX::sigsuspend($set);
+       } for 1..2;
+       is $gotit, 0, 'Received both signals';
+    }
 }
 
 SKIP: {

--
Perl5 Master Repository

Reply via email to