move XS code to separate dist
[p5sagit/Devel-GlobalDestruction.git] / t / 03_minusc.t
index 09b82ad..0bb43ff 100644 (file)
@@ -3,19 +3,9 @@ use warnings;
 
 BEGIN {
   if ($ENV{DEVEL_GLOBALDESTRUCTION_PP_TEST}) {
-    no strict 'refs';
-    no warnings 'redefine';
-
-    for my $f (qw(DynaLoader::bootstrap XSLoader::load)) {
-      my ($mod) = $f =~ /^ (.+) \:\: [^:]+ $/x;
-      eval "require $mod" or die $@;
-
-      my $orig = \&$f;
-      *$f = sub {
-        die 'no XS' if ($_[0]||'') eq 'Devel::GlobalDestruction';
-        goto $orig;
-      };
-    }
+    unshift @INC, sub {
+      die 'no XS' if $_[1] eq 'Devel/GlobalDestruction/XS.pm';
+    };
   }
 }
 
@@ -37,12 +27,16 @@ BEGIN {
   require B;
   B::minus_c();
 
-  print "1..2\n";
+  print "1..3\n";
   ok( $^C, "Test properly running under minus-c" );
 }
 
 use Devel::GlobalDestruction;
 
+BEGIN {
+    ok !in_global_destruction(), "BEGIN is not GD with -c";
+}
+
 our $foo;
 BEGIN {
   $foo = Test::Scope::Guard->new( sub {