source: trunk/essentials/dev-lang/perl/t/lib/1_compile.t

Last change on this file was 3181, checked in by bird, 19 years ago

perl 5.8.8

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