⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xsloader.t

📁 source of perl for linux application,
💻 T
字号:
#!/usr/bin/perl -TBEGIN {    if( $ENV{PERL_CORE} ) {        chdir 't';        @INC = '../lib';    }}use strict;use Config;my $db_file;BEGIN {    eval "use Test::More";    if ($@) {        print "1..0 # Skip: Test::More not available\n";        die "Test::More not available\n";    }    use Config;    foreach (qw/SDBM_File GDBM_File ODBM_File NDBM_File DB_File/) {        if ($Config{extensions} =~ /\b$_\b/) {            $db_file = $_;            last;        }    }}my %modules = (    # ModuleName  => q|code to check that it was loaded|,    'Cwd'        => q| ::can_ok( 'Cwd' => 'fastcwd'         ) |,  # 5.7 ?    'File::Glob' => q| ::can_ok( 'File::Glob' => 'doglob'   ) |,  # 5.6    $db_file     => q| ::can_ok( $db_file => 'TIEHASH'      ) |,  # 5.0    'Socket'     => q| ::can_ok( 'Socket' => 'inet_aton'    ) |,  # 5.0    'Time::HiRes'=> q| ::can_ok( 'Time::HiRes' => 'usleep'  ) |,  # 5.7.3);plan tests => keys(%modules) * 3 + 5;# Try to load the moduleuse_ok( 'XSLoader' );# Check functionscan_ok( 'XSLoader' => 'load' );can_ok( 'XSLoader' => 'bootstrap_inherit' );# Check error messageseval { XSLoader::load() };like( $@, '/^XSLoader::load\(\'Your::Module\', \$Your::Module::VERSION\)/',        "calling XSLoader::load() with no argument" );eval q{ package Thwack; XSLoader::load('Thwack'); };like( $@, q{/^Can't locate loadable object for module Thwack in @INC/},        "calling XSLoader::load() under a package with no XS part" );# Now try to load well known XS modulesmy $extensions = $Config{'extensions'};$extensions =~ s|/|::|g;for my $module (sort keys %modules) {    SKIP: {        skip "$module not available", 3 if $extensions !~ /\b$module\b/;        eval qq{ package $module; XSLoader::load('$module', "qunckkk"); };        like( $@, "/^$module object version \\S+ does not match bootstrap parameter (?:qunckkk|0)/",                  "calling XSLoader::load() with a XS module and an incorrect version" );        eval qq{ package $module; XSLoader::load('$module'); };        is( $@, '',  "XSLoader::load($module)");        eval qq{ package $module; $modules{$module}; };    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -