skip some tests under -Uusedl
authorDavid Mitchell <davem@iabyn.com>
Sat, 26 Mar 2011 18:45:13 +0000 (18:45 +0000)
committerDavid Mitchell <davem@iabyn.com>
Sat, 26 Mar 2011 19:25:47 +0000 (19:25 +0000)
When everything is staticly linked, a few tests fail, because:

* XS::APItest isn't built;
* some extensions will have been pre-loaded

t/op/goto_xs.t
t/op/magic.t

index 79f7192..fbdd2dd 100644 (file)
@@ -88,7 +88,16 @@ $ret = call_goto_ref($VALID);
 is($ret, $value, 'goto &$function_ref; from a sub called without arglist');
 
 
-use XS::APItest qw(mycroak);
+BEGIN {
+    use Config;
+    if ($Config{extensions} =~ m{XS/APItest}) {
+       eval q[use XS::APItest qw(mycroak); 1]
+           or die "use XS::APItest: $@\n";
+    }
+    else {
+       *mycroak = sub { die @_ };
+    }
+}
 
 sub goto_croak { goto &mycroak }
 
index a8247c0..3128687 100644 (file)
@@ -362,21 +362,24 @@ SKIP:  {
 }
 
 # Check that we don't auto-load packages
-foreach (['powie::!', 'Errno'],
-        ['powie::+', 'Tie::Hash::NamedCapture']) {
-    my ($symbol, $package) = @$_;
-    foreach my $scalar_first ('', '$$symbol;') {
-       my $desc = qq{Referencing %{"$symbol"}};
-       $desc .= qq{ after mentioning \${"$symbol"}} if $scalar_first;
-       $desc .= " doesn't load $package";
-
-       fresh_perl_is(<<"EOP", 0, {}, $desc);
+SKIP: {
+    skip "staticly linked; may be preloaded", 4 unless $Config{usedl};
+    foreach (['powie::!', 'Errno'],
+            ['powie::+', 'Tie::Hash::NamedCapture']) {
+       my ($symbol, $package) = @$_;
+       foreach my $scalar_first ('', '$$symbol;') {
+           my $desc = qq{Referencing %{"$symbol"}};
+           $desc .= qq{ after mentioning \${"$symbol"}} if $scalar_first;
+           $desc .= " doesn't load $package";
+
+           fresh_perl_is(<<"EOP", 0, {}, $desc);
 use strict qw(vars subs);
 my \$symbol = '$symbol';
 $scalar_first;
 1 if %{\$symbol};
 print scalar %${package}::;
 EOP
+       }
     }
 }