]> git.vpit.fr Git - perl/modules/Scope-Upper.git/blobdiff - t/54-unwind-threads.t
Harden t/54-unwind-threads.t against stray exits
[perl/modules/Scope-Upper.git] / t / 54-unwind-threads.t
index 56457670f74be22c6864d1814ab6346c36688ed9..490e6ad56137d6f5ba69e1b82884316ccb17989f 100644 (file)
@@ -1,10 +1,13 @@
-#!perl -T
+#!perl
 
 use strict;
 use warnings;
 
 use lib 't/lib';
-use Scope::Upper::TestThreads;
+use VPIT::TestHelpers (
+ threads => [ 'Scope::Upper' => 'Scope::Upper::SU_THREADSAFE()' ],
+ 'usleep',
+);
 
 use Test::Leaner;
 
@@ -17,7 +20,7 @@ sub up1 {
  local $z = $tid;
  my $p    = "[$tid] up1";
 
- usleep rand(1e6);
+ usleep rand(2.5e5);
 
  my @res = (
   -1,
@@ -35,12 +38,17 @@ sub up1 {
  );
 
  is_deeply \@res, [ -1, $tid .. $tid + 2, -2 ], "$p: unwinded correctly";
+
+ return 1;
 }
 
 my @threads = map spawn(\&up1), 1 .. 30;
 
-$_->join for @threads;
+my $completed = 0;
+for my $thr (@threads) {
+ ++$completed if $thr->join;
+}
 
 pass 'done';
 
-done_testing(scalar(@threads) + 1);
+done_testing($completed + 1);