$Has_Test_Pod = eval 'use Test::Pod 0.95; 1';
}
-my(@modules);
-
-chdir File::Spec->catdir(File::Spec->updir, 'lib');
-find( sub {
- return if /~$/;
- if( $File::Find::dir =~ /^blib|t$/ ) {
- $File::Find::prune = 1;
- return;
- }
- push @modules, $File::Find::name if /\.pm$/;
- }, 'ExtUtils'
-);
-
+chdir File::Spec->updir;
+my $manifest = File::Spec->catfile('MANIFEST');
+open(my $manifest_fh, "<", $manifest) or die "Can't open $manifest: $!";
+my @modules = map { m{^lib/(\S+)}; $1 }
+ grep { m{^lib/ExtUtils/\S*\.pm} }
+ grep { !m{/t/} } <$manifest_fh>;
+chomp @modules;
+close $manifest_fh;
+
+chdir 'lib';
plan tests => scalar @modules * 2;
foreach my $file (@modules) {
+ # Make sure we look at the local files and do not reload them if
+ # they're already loaded. This avoids recompilation warnings.
local @INC = @INC;
- unshift @INC, File::Spec->curdir;
-
- # This piece of insanity brought to you by non-case preserving
- # file systems! We have extutils/command.pm, %INC has
- # ExtUtils/Command.pm
- # Furthermore, 5.8.0 has a bug about require alone in an eval. Thus
- # the extra statement.
- eval q{ require($file); 1 } unless grep { lc $file =~ lc $_ } keys %INC;
- is( $@, '', "require $file" );
+ unshift @INC, ".";
+ ok eval { require($file); 1 } or diag "require $file failed.\n$@";
SKIP: {
skip "Test::Pod not installed", 1 unless $Has_Test_Pod;
pod_file_ok($file);
}
-
}