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

📄 19_cpanplus-dist.t

📁 source of perl for linux application,
💻 T
📖 第 1 页 / 共 2 页
字号:
                sub { $conf->set_conf(prereqs => PREREQ_INSTALL); },            ],        },        1 => {            'Simple create'     => [                sub { 'create' },                sub { ok( $_[0]->status->prepared,                            "   Module status says prepared" ) },                sub { ok( $_[0]->status->created,                            "   Module status says created" ) },                sub { ok( !$_[0]->status->installed,                            "   Module status says not installed" ) },            ],            'Simple install'    => [                sub { 'install' },                sub { ok( $_[0]->status->prepared,                            "   Module status says prepared" ) },                sub { ok( $_[0]->status->created,                            "   Module status says created" ) },                sub { ok( $_[0]->status->installed,                            "   Module status says installed" ) },            ],            'Install from conf' => [                sub { $conf->set_conf(prereqs => PREREQ_INSTALL);   '' },                sub { ok( $_[0]->status->prepared,                            "   Module status says prepared" ) },                sub { ok( $_[0]->status->created,                            "   Module status says created" ) },                sub { ok( $_[0]->status->installed,                            "   Module status says installed" ) },            ],            'Create from conf'  => [                sub { $conf->set_conf(prereqs => PREREQ_BUILD);     '' },                sub { ok( $_[0]->status->prepared,                            "   Module status says prepared" ) },                sub { ok( $_[0]->status->created,                            "   Module status says created" ) },                sub { ok( !$_[0]->status->installed,                            "   Module status says not installed" ) },                ### set the conf back ###                sub { $conf->set_conf(prereqs => PREREQ_INSTALL); },            ],            'Ask from conf'     => [                sub { $cb->_register_callback(                            name => 'install_prerequisite',                            code => sub {1} );                      $conf->set_conf(prereqs => PREREQ_ASK);       '' },                sub { ok( $_[0]->status->prepared,                            "   Module status says prepared" ) },                sub { ok( $_[0]->status->created,                            "   Module status says created" ) },                sub { ok( $_[0]->status->installed,                            "   Module status says installed" ) },                ### set the conf back ###                sub { $conf->set_conf(prereqs => PREREQ_INSTALL); },            ],            'Ask from conf, but decline' => [                sub { $cb->_register_callback(                            name => 'install_prerequisite',                            code => sub {0} );                      $conf->set_conf( prereqs => PREREQ_ASK);      '' },                sub { ok( !$_[0]->status->installed,                            "   Module status says not installed" ) },                sub { like( CPANPLUS::Error->stack_as_string,                      qr/Will not install prerequisite '$ModPrereq' -- Note/,                            "   Install skipped, recorded ok" ) },                ### set the conf back ###                sub { $conf->set_conf(prereqs => PREREQ_INSTALL); },            ],            "Set recursive dependency" => [                sub { $cb->_status->pending_prereqs({ $ModPrereq => 1 });                                                                'install' },                sub { like( CPANPLUS::Error->stack_as_string,                      qr/Recursive dependency detected/,                            "   Recursive dependency recorded ok" ) },            ],          },    };    for my $bool ( sort keys %$map ) {        diag("Running ". ($bool?'success':'fail') . " tests") if @ARGV;        my $href = $map->{$bool};        while ( my($txt,$aref) = each %$href ) {            ### reset everything ###            ok( $cb->reload_indices( update_source => 0 ),                                "Rebuilding trees" );            $CPANPLUS::Dist::_Test::Available   = 1;            $CPANPLUS::Dist::_Test::Prepare     = 1;            $CPANPLUS::Dist::_Test::Create      = 1;            $CPANPLUS::Dist::_Test::Install     = 1;            CPANPLUS::Error->flush;            $cb->_status->mk_flush;            ### get a new dist from Text::Bastardize ###            my $dist = CPANPLUS::Dist->new(                        format => $Module,                        module => $cb->module_tree( $ModName ),                    );            ### first sub returns target ###            my $sub    = shift @$aref;            my $target = $sub->();            my $flag = $dist->_resolve_prereqs(                            format  => $Module,                            force   => 1,                            target  => $target,                            prereqs => $Prereq );            is( !!$flag, !!$bool,   $txt );            ### any extra tests ###            $_->($cb->module_tree($ModPrereq)) for @$aref;        }    }}### prereq satisfied tests{   my $map = {        # version   regex        0   =>      undef,        1   =>      undef,        2   =>      qr/have to resolve/,    };           my $mod = CPANPLUS::Module::Fake->new(                    module  => $$,                    package => $$,                    path    => $$,                    version => 1 );    ok( $mod,                   "Fake module created" );    is( $mod->version, 1,       "   Version set correctly" );         my $dist = CPANPLUS::Dist->new(                            format  => $Module,                            module  => $Mod                        );        ok( $dist,                  "Dist object created" );    isa_ok( $dist,              $Module );            ### scope it for the locals    {   local $^W;  # quell sub redefined warnings;            ### is_uptodate will need to return false for this test        local *CPANPLUS::Module::Fake::is_uptodate = sub { return };        local *CPANPLUS::Module::Fake::is_uptodate = sub { return };        CPANPLUS::Error->flush;                    ### it's satisfied        while( my($ver, $re) = each %$map ) {                    my $rv = $dist->prereq_satisfied(                        version => $ver,                        modobj  => $mod );                                    ok( 1,                  "Testing ver: $ver" );                                is( $rv, undef,       "   Return value as expected" );                        if( $re ) {                like( CPANPLUS::Error->stack_as_string, $re,                                    "   Error as expected" );            }                    CPANPLUS::Error->flush;        }    }}### dist_types tests{   can_ok( 'CPANPLUS::Dist',       'dist_types' );    SKIP: {        skip "You do not have Module::Pluggable installed", 2            unless check_install( module => 'Module::Pluggable' );        my @types = CPANPLUS::Dist->dist_types;        ok( scalar(@types),         "   Dist types found" );        ok( grep( /_Test/, @types), "   Found our _Test dist type" );    }}1;# Local variables:# c-indentation-style: bsd# c-basic-offset: 4# indent-tabs-mode: nil# End:# vim: expandtab shiftwidth=4:

⌨️ 快捷键说明

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