]> git.vpit.fr Git - perl/modules/Scalar-Vec-Util.git/commitdiff
A better way to check for pure-Perl versions
authorVincent Pit <vince@profvince.com>
Sun, 17 May 2009 19:03:20 +0000 (21:03 +0200)
committerVincent Pit <vince@profvince.com>
Sun, 17 May 2009 19:03:20 +0000 (21:03 +0200)
Inspired from Test::NoXS.

t/02-pp.t

index a4d5f0faf6443aa062e4d5e64e4467b677acac30..dea9f2b4977d1e148ab636dcad684e189fe377ad 100644 (file)
--- a/t/02-pp.t
+++ b/t/02-pp.t
@@ -8,16 +8,17 @@ use Config qw/%Config/;
 use Test::More tests => 4;
 
 BEGIN {
- my $re = join '|',
-           grep defined && length,
-            @Config{qw/myarchname archname/}, 'arch';
- my @inc = @INC;
- @INC = grep !/(?:$re)$/, @INC;
- require Scalar::Vec::Util;
- Scalar::Vec::Util->import(qw/vfill vcopy veq SVU_PP/);
- @INC = @inc;
+ require XSLoader;
+ my $xsloader_load_orig = \&XSLoader::load;
+ no warnings 'redefine';
+ *XSLoader::load = sub {
+  die if $_[0] eq 'Scalar::Vec::Util';
+  goto $xsloader_load_orig;
+ };
 }
 
+use Scalar::Vec::Util qw/vfill vcopy veq SVU_PP/;
+
 is(SVU_PP, 1, 'using pure perl subroutines');
 for (qw/vfill vcopy veq/) {
  no strict 'refs';