3 # Modules should have their own tests. For historical reasons, some
4 # do not. This does basic compile tests on modules that have no tests
14 use File::Spec::Functions;
16 # Okay, this is the list.
18 my @Core_Modules = grep /\S/, <DATA>;
21 if (eval { require Socket }) {
22 # Two Net:: modules need the Convert::EBCDIC if in EBDCIC.
23 if (ord("A") != 193 || eval { require Convert::EBCDIC }) {
24 push @Core_Modules, qw(Net::Cmd Net::POP3);
28 @Core_Modules = sort @Core_Modules;
30 plan tests => 1+@Core_Modules;
32 cmp_ok(@Core_Modules, '>', 0, "All modules should have tests");
33 note("http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-04/msg01223.html");
34 note("20010421230349.P2946\@blackrider.blackstar.co.uk");
36 foreach my $module (@Core_Modules) {
37 if ($module eq 'ByteLoader' && $^O eq 'VMS') {
39 local $TODO = "$module needs porting on $^O";
40 ok(compile_module($module), "compile $module");
44 ok(compile_module($module), "compile $module");
48 # We do this as a separate process else we'll blow the hell
49 # out of our namespace.
53 my $compmod = catfile(curdir(), 'lib', 'compmod.pl');
54 my $lib = '-I' . catdir(updir(), 'lib');
56 my $out = scalar `$^X $lib $compmod $module`;
60 # These modules have no tests of their own.
61 # Keep up to date with
62 # http://perl-qa.hexten.net/wiki/index.php/Untested_Core_Modules
63 # and vice-versa. The list should only shrink.