#!/usr/bin/perl -wT
BEGIN {
if( $ENV{PERL_CORE} ) {
chdir 't';
@INC = '../lib';
}
}
use strict;
use Config;
use Test::More;
my %modules;
BEGIN {
%modules = (
# ModuleName => q|code to check that it was loaded|,
'Cwd' => q| ::is( ref Cwd->can('fastcwd'),'CODE' ) |, # 5.7 ?
'File::Glob' => q| ::is( ref File::Glob->can('doglob'),'CODE' ) |, # 5.6
'SDBM_File' => q| ::is( ref SDBM_File->can('TIEHASH'), 'CODE' ) |, # 5.0
'Socket' => q| ::is( ref Socket->can('inet_aton'),'CODE' ) |, # 5.0
'Time::HiRes'=> q| ::is( ref Time::HiRes->can('usleep'),'CODE' ) |, # 5.7.3
);
plan tests => keys(%modules) * 2 + 3
}
BEGIN {
use_ok( 'XSLoader' );
}
# Check functions
can_ok( 'XSLoader' => 'load' );
#can_ok( 'XSLoader' => 'bootstrap_inherit' ); # doesn't work
# Check error messages
eval { XSLoader::load() };
like( $@, '/^XSLoader::load\(\'Your::Module\', \$Your::Module::VERSION\)/',
"calling XSLoader::load() with no argument" );
# Now try to load well known XS modules
my $extensions = $Config{'extensions'};
$extensions =~ s|/|::|g;
for my $module (sort keys %modules) {
SKIP: {
skip "$module not available", 2 if $extensions !~ /\b$module\b/;
eval qq| package $module; XSLoader::load('$module'); | . $modules{$module};
is( $@, '', "XSLoader::load($module)");
}
}