Author: dagolden
Date: Fri Jun 19 16:52:10 2009
New Revision: 12868
Modified:
Module-Build/trunk/Changes
Module-Build/trunk/lib/Module/Build/Compat.pm
Module-Build/trunk/t/compat.t
Log:
Fix module::Build::Compat and recursive test files (RT#39171)
Thank you Dave Rolsky for the patch.
Modified: Module-Build/trunk/Changes
==============================================================================
--- Module-Build/trunk/Changes (original)
+++ Module-Build/trunk/Changes Fri Jun 19 16:52:10 2009
@@ -7,6 +7,7 @@
- ConfigData->feature() confirms that modules actually load successfully,
not just that they are present. (RT#43557)
- Module::Build::Compat handling of INSTALL*LIB (RT#43827)
+ - Module::Build::Compat and recursive test files (RT#39171)
Other
- On MSWin32, bumped File::Spec prereq to 3.30 for a variety of fixes
Modified: Module-Build/trunk/lib/Module/Build/Compat.pm
==============================================================================
--- Module-Build/trunk/lib/Module/Build/Compat.pm (original)
+++ Module-Build/trunk/lib/Module/Build/Compat.pm Fri Jun 19 16:52:10 2009
@@ -4,6 +4,7 @@
use vars qw($VERSION);
$VERSION = '0.33_03';
+use File::Basename ();
use File::Spec;
use IO::File;
use Config;
@@ -178,7 +179,7 @@
%prereq = ( %{$build->requires}, %{$build->build_requires} );
%prereq = map {$_, $prereq{$_}} sort keys %prereq;
- delete $prereq{perl};
+ delete $prereq{perl};
$MM_Args{PREREQ_PM} = \%prereq;
$MM_Args{INSTALLDIRS} = $build->installdirs eq 'core' ? 'perl' : $build->installdirs;
@@ -186,7 +187,11 @@
$MM_Args{EXE_FILES} = [ sort keys %{$build->script_files} ] if $build->script_files;
$MM_Args{PL_FILES} = $build->PL_files || {};
-
+
+ if ($build->recursive_test_files) {
+ $MM_Args{TESTS} = join q{ }, $package->_test_globs($build);
+ }
+
local $Data::Dumper::Terse = 1;
my $args = Data::Dumper::Dumper(\%MM_Args);
$args =~ s/\{(.*)\}/($1)/s;
@@ -199,6 +204,12 @@
}
}
+sub _test_globs {
+ my ($self, $build) = @_;
+
+ return map { File::Spec->catfile($_, '*.t') }
+ @{$build->rscan_dir('t', sub { -d $File::Find::name })};
+}
sub subclass_dir {
my ($self, $build) = @_;
Modified: Module-Build/trunk/t/compat.t
==============================================================================
--- Module-Build/trunk/t/compat.t (original)
+++ Module-Build/trunk/t/compat.t Fri Jun 19 16:52:10 2009
@@ -270,6 +270,21 @@
ok ! -e 'Makefile.PL', "Makefile.PL cleaned up";
}
+{
+ $dist->add_file('t/deep/foo.t', q{});
+ $dist->regen;
+
+ my $mb;
+ stdout_of( sub {
+ $mb = Module::Build->new_from_context( recursive_test_files => 1 );
+ });
+
+ create_makefile_pl('traditional', $mb);
+ my $args = extract_writemakefile_args() || {};
+ is $args->{TESTS}, 't/*.t t/deep/*.t',
+ 'Makefile.PL has correct TESTS line for recursive test files';
+}
+
# cleanup
$dist->remove;
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.