]> git.vpit.fr Git - perl/modules/Variable-Magic.git/commitdiff
Require threads 1.67 and threads::shared 1.14 in t/40-threads.t
authorVincent Pit <vince@profvince.com>
Fri, 15 May 2009 19:02:51 +0000 (21:02 +0200)
committerVincent Pit <vince@profvince.com>
Fri, 15 May 2009 19:02:51 +0000 (21:02 +0200)
Let's hope this will clear up the smokes a little. They are bundled with 5.10.

t/40-threads.t

index d2c536eed190a11a0be6ebc4f1c748f5374bfc61..bd64663e44166c2a581455384ffb8b438bc27fcf 100644 (file)
@@ -3,31 +3,36 @@
 use strict;
 use warnings;
 
+sub skipall {
+ my ($msg) = @_;
+ require Test::More;
+ Test::More::plan(skip_all => $msg);
+}
+
 use Config qw/%Config/;
 
 BEGIN {
- if (!$Config{useithreads}) {
-  require Test::More;
-  Test::More->import;
-  plan(skip_all => 'This perl wasn\'t built to support threads');
- }
+ my $t_v  = '1.67';
+ my $ts_v = '1.14';
+ skipall 'This perl wasn\'t built to support threads'
+                                                    unless $Config{useithreads};
+ skipall "threads $t_v required to test thread safety"
+                                              unless eval "use threads $t_v; 1";
+ skipall "threads::shared $ts_v required to test thread safety"
+                                     unless eval "use threads::shared $ts_v; 1";
 }
 
-use threads; # Before Test::More
-use threads::shared;
-
-use Test::More;
+use Test::More; # after threads
 
 use Variable::Magic qw/wizard cast dispell getdata VMG_THREADSAFE VMG_OP_INFO_NAME VMG_OP_INFO_OBJECT/;
 
-if (VMG_THREADSAFE) {
+BEGIN {
+ skipall 'This Variable::Magic isn\'t thread safe' unless VMG_THREADSAFE;
  plan tests => 2 * (4 * 18 + 1) + 2 * (4 * 13 + 1);
  my $v = $threads::VERSION;
  diag "Using threads $v" if defined $v;
  $v = $threads::shared::VERSION;
  diag "Using threads::shared $v" if defined $v;
-} else {
- plan skip_all => 'This Variable::Magic isn\'t thread safe';
 }
 
 my $destroyed : shared = 0;