#!/usr/bin/perl # vim: ft=perl ts=4 shiftwidth=4 softtabstop=4 expandtab #=============================================================================== # # FILE: 01-author.t # # BUGS: --- # NOTES: --- # AUTHOR: Anatoliy Grishaev (), grian@cpan.org # CREATED: 03/31/2014 11:32:21 AM # DESCRIPTION: --- # #=============================================================================== use strict; use warnings; use Test::More; use lib 'lib'; require lib::deep; *mkapath = \&lib::deep::mkapath; if ( $ENV{TEST_AUTHOR} ){ plan tests => 16; is( mkapath( '/home/webadmin/A.pm', 0, 'lib' ), '/home/webadmin/lib' ); is( mkapath( '/home/webadmin/A.pm', 0, '' ), '/home/webadmin' ); is( mkapath( '/home/webadmin/A.pm', 0, ), '/home/webadmin' ); chdir( '/home/gtoly' ); is( mkapath( './1.pm', 0, 'lib' ), '/home/gtoly/lib' ); is( mkapath( '../1.pm', 0, 'lib' ), '/home/lib' ); is( mkapath( 'lib/./1.pm', 0, 'lib'), '/home/gtoly/lib/lib' ); is( invoke( A=>'/home/gtoly/lib/A.pm', ), '/home/gtoly/lib'); is( invoke( "A::B"=>'/home/gtoly/lib/A/B.pm', ), '/home/gtoly/lib'); is( invoke( "A::B::C"=>'/home/gtoly/lib/A/B/C.pm', ), '/home/gtoly/lib'); is( invoke( main=>'/home/gtoly/lib/A.pm', -1), '/home/gtoly/lib'); is( invoke( main=>'/home/gtoly/lib/A/B.pm', -2), '/home/gtoly/lib'); is( invoke( main=>'/home/gtoly/lib/A/B/C.pm', -3), '/home/gtoly/lib'); is( invoke( main=>'/home/gtoly/bin/a.pl', 0), '/home/gtoly/bin/lib'); is( invoke( main=>'/home/gtoly/bin/a.pl', -1), '/home/gtoly/lib'); is( invoke( main=>'/home/gtoly/bin/a.pl'), '/home/gtoly/lib'); is( invoke( main=>'/home/gtoly/a.pl'), '/home/gtoly/lib'); } else { plan skip_all => 'Author test. Set $ENV{TEST_AUTHOR} to a true value to run.'; } sub invoke{ my ( $p, $file, @args ) = @_; local @INC; my $import = \&lib::deep::import; my $s = "package $p;\n#line 1 $file\nlib::deep::import(1,\@args)"; eval $s; warn $@ if $@; return shift @INC; }