1_compile.t fix for VMS
[p5sagit/p5-mst-13.2.git] / t / lib / 1_compile.t
1 #!./perl
2
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
5 # of their own.
6
7 BEGIN {
8     chdir 't';
9     @INC = '../lib';
10 }
11
12 use strict;
13 use warnings;
14
15 # Okay, this is the list.
16
17 my @Core_Modules = grep /\S/, <DATA>;
18 chomp @Core_Modules;
19
20 # Two Net:: modules need the Convert::EBCDIC if in EBDCIC.
21 if (ord("A") != 193 || eval { require Convert::EBCDIC }) {
22     push @Core_Modules, qw(Net::Cmd Net::POP3);
23 }
24
25 @Core_Modules = sort @Core_Modules;
26
27 print "1..".(1+@Core_Modules)."\n";
28
29 my $message
30   = "ok 1 - All modules should have tests # TODO Make Schwern Poorer\n";
31 if (@Core_Modules) {
32   print "not $message";
33 } else {
34   print $message;
35 }
36
37 my $test_num = 2;
38
39 foreach my $module (@Core_Modules) {
40     my $todo = '';
41     $todo = "# TODO $module needs porting on $^O" if $module eq 'ByteLoader' && $^O eq 'VMS';
42     print "# $module compile failed\nnot " unless compile_module($module);
43     print "ok $test_num $todo\n";
44     $test_num++;
45 }
46
47 # We do this as a separate process else we'll blow the hell
48 # out of our namespace.
49 sub compile_module {
50     my ($module) = $_[0];
51
52     my $out = scalar `$^X "-I../lib" lib/compmod.pl $module`;
53     print "# $out";
54     return $out =~ /^ok/;
55 }
56
57 # These modules have no tests of their own.
58 # Keep up to date with
59 # http://www.pobox.com/~schwern/cgi-bin/perl-qa-wiki.cgi?UntestedModules
60 # and vice-versa.  The list should only shrink.
61 __DATA__
62 B::CC
63 B::Disassembler
64 B::Stackobj
65 ByteLoader
66 CPAN
67 CPAN::FirstTime
68 DynaLoader
69 ExtUtils::MM_NW5
70 ExtUtils::Install
71 ExtUtils::Liblist
72 ExtUtils::Mksymlists
73 Net::Domain
74 O
75 Pod::Plainer
76 Test::Harness::Iterator