diff options
Diffstat (limited to 'gnu/usr.bin/perl/cpan/Module-Build/t/basic.t')
-rwxr-xr-x | gnu/usr.bin/perl/cpan/Module-Build/t/basic.t | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/gnu/usr.bin/perl/cpan/Module-Build/t/basic.t b/gnu/usr.bin/perl/cpan/Module-Build/t/basic.t deleted file mode 100755 index e26847e3d60..00000000000 --- a/gnu/usr.bin/perl/cpan/Module-Build/t/basic.t +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use lib 't/lib'; -use MBTest tests => 58; - -blib_load('Module::Build'); - -my $tmp = MBTest->tmpdir; - -use DistGen; -my $dist = DistGen->new( dir => $tmp ); -$dist->regen; - -$dist->chdir_in; - -######################### - - -# Test object creation -{ - my $mb = Module::Build->new( module_name => $dist->name ); - ok $mb; - is $mb->module_name, $dist->name; - is $mb->build_class, 'Module::Build'; - is $mb->dist_name, $dist->name; - - $mb = Module::Build->new( dist_name => $dist->name, dist_version => 7 ); - ok $mb; - ok $mb->module_name; # Set via heuristics - is $mb->dist_name, $dist->name; -} - -# Make sure actions are defined, and known_actions works as class method -{ - my %actions = map {$_, 1} Module::Build->known_actions; - ok $actions{clean}; - ok $actions{distdir}; -} - -# Test prerequisite checking -{ - local @INC = (File::Spec->catdir( $dist->dirname, 'lib' ), @INC); - my $flagged = 0; - local $SIG{__WARN__} = sub { $flagged = 1 if $_[0] =~ /@{[$dist->name]}/}; - my $mb = Module::Build->new( - module_name => $dist->name, - requires => {$dist->name => 0}, - ); - ok ! $flagged; - ok ! $mb->prereq_failures; - $mb->dispatch('realclean'); - $dist->clean; - - $flagged = 0; - $mb = Module::Build->new( - module_name => $dist->name, - requires => {$dist->name => 3.14159265}, - ); - ok $flagged; - ok $mb->prereq_failures; - ok $mb->prereq_failures->{requires}{$dist->name}; - is $mb->prereq_failures->{requires}{$dist->name}{have}, "0.01"; - is $mb->prereq_failures->{requires}{$dist->name}{need}, "3.14159265"; - - $mb->dispatch('realclean'); - $dist->clean; - - # Make sure check_installed_status() works as a class method - my $info = Module::Build->check_installed_status('File::Spec', 0); - ok $info->{ok}; - is $info->{have}, $File::Spec::VERSION; - - # Make sure check_installed_status() works with an advanced spec - $info = Module::Build->check_installed_status('File::Spec', '> 0'); - ok $info->{ok}; - - # Use 2 lines for this, to avoid a "used only once" warning - local $Foo::Module::VERSION; - $Foo::Module::VERSION = '1.01_02'; - - $info = Module::Build->check_installed_status('Foo::Module', '1.01_02'); - ok $info->{ok} or diag($info->{message}); -} - -{ - # Make sure the correct warning message is generated when an - # optional prereq isn't installed - my $flagged = 0; - local $SIG{__WARN__} = sub { $flagged = 1 if $_[0] =~ /ModuleBuildNonExistent is not installed/}; - - my $mb = Module::Build->new( - module_name => $dist->name, - recommends => {ModuleBuildNonExistent => 3}, - ); - ok $flagged; - $dist->clean; -} - -# Test verbosity -{ - my $mb = Module::Build->new(module_name => $dist->name); - - $mb->add_to_cleanup('save_out'); - # Use uc() so we don't confuse the current test output - like uc(stdout_of( sub {$mb->dispatch('test', verbose => 1)} )), qr/^OK \d/m; - like uc(stdout_of( sub {$mb->dispatch('test', verbose => 0)} )), qr/\.\. ?OK/; - - $mb->dispatch('realclean'); - $dist->clean; -} - -# Make sure 'config' entries are respected on the command line, and that -# Getopt::Long specs work as expected. -{ - use Config; - $dist->change_build_pl - ({ - module_name => @{[$dist->name]}, - license => 'perl', - get_options => { foo => {}, - bar => { type => '+' }, - bat => { type => '=s' }, - dee => { type => '=s', - default => 'goo' - }, - } - }); - - $dist->regen; - eval {Module::Build->run_perl_script('Build.PL', [], ['--nouse-rcfile', '--config', "foocakes=barcakes", '--foo', '--bar', '--bar', '-bat=hello', 'gee=whiz', '--any', 'hey', '--destdir', 'yo', '--verbose', '1'])}; - is $@, ''; - - my $mb = Module::Build->resume; - ok $mb->valid_property('config'); - - is $mb->config('cc'), $Config{cc}; - is $mb->config('foocakes'), 'barcakes'; - - # Test args(). - is $mb->args('foo'), 1; - is $mb->args('bar'), 2, 'bar'; - is $mb->args('bat'), 'hello', 'bat'; - is $mb->args('gee'), 'whiz'; - is $mb->args('any'), 'hey'; - is $mb->args('dee'), 'goo'; - is $mb->destdir, 'yo'; - my %runtime = $mb->runtime_params; - is_deeply \%runtime, - { - verbose => 1, - destdir => 'yo', - use_rcfile => 0, - config => { foocakes => 'barcakes' }, - }; - - ok my $argsref = $mb->args; - is $argsref->{foo}, 1; - $argsref->{doo} = 'hee'; - is $mb->args('doo'), 'hee'; - ok my %args = $mb->args; - is $args{foo}, 1; - - # revert test distribution to pristine state because we modified a file - $dist->regen( clean => 1 ); -} - -# Test author stuff -{ - my $mb = Module::Build->new( - module_name => $dist->name, - dist_author => 'Foo Meister <foo@example.com>', - build_class => 'My::Big::Fat::Builder', - ); - ok $mb; - ok ref($mb->dist_author), 'dist_author converted to array if simple string'; - is $mb->dist_author->[0], 'Foo Meister <foo@example.com>'; - is $mb->build_class, 'My::Big::Fat::Builder'; -} - -# Test conversion of shell strings -{ - my $mb = Module::Build->new( - module_name => $dist->name, - dist_author => 'Foo Meister <foo@example.com>', - extra_compiler_flags => '-I/foo -I/bar', - extra_linker_flags => '-L/foo -L/bar', - ); - ok $mb; - is_deeply $mb->extra_compiler_flags, ['-I/foo', '-I/bar'], "Should split shell string into list"; - is_deeply $mb->extra_linker_flags, ['-L/foo', '-L/bar'], "Should split shell string into list"; - - # Try again with command-line args - eval {Module::Build->run_perl_script('Build.PL', [], ['--extra_compiler_flags', '-I/foo -I/bar', - '--extra_linker_flags', '-L/foo -L/bar'])}; - $mb = Module::Build->resume; - ok $mb; - is_deeply $mb->extra_compiler_flags, ['-I/foo', '-I/bar'], "Should split shell string into list"; - is_deeply $mb->extra_linker_flags, ['-L/foo', '-L/bar'], "Should split shell string into list"; -} - -# Test include_dirs. -{ - ok my $mb = Module::Build->new( - module_name => $dist->name, - include_dirs => [qw(/foo /bar)], - ); - is_deeply $mb->include_dirs, ['/foo', '/bar'], 'Should have include dirs'; - - # Try a string. - ok $mb = Module::Build->new( - module_name => $dist->name, - include_dirs => '/foo', - ); - is_deeply $mb->include_dirs, ['/foo'], 'Should have string include dir'; - - # Try again with command-line args - eval { Module::Build->run_perl_script( - 'Build.PL', [], - ['--include_dirs', '/foo', '--include_dirs', '/bar' ], - ) }; - - ok $mb = Module::Build->resume; - is_deeply $mb->include_dirs, ['/foo', '/bar'], 'Should have include dirs'; - - eval { Module::Build->run_perl_script( - 'Build.PL', [], - ['--include_dirs', '/foo' ], - ) }; - - ok $mb = Module::Build->resume; - is_deeply $mb->include_dirs, ['/foo'], 'Should have single include dir'; -} - |