1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
# -*- perl -*-
use Test::More;
use File::Find;
use Config;
use Cwd qw/abs_path/;
use Socket;
use Sys::Hostname;
$VERBOSE = 0;
$TEST_NET = '207.173.0';
#------------------------------------------------------------
# Main
#------------------------------------------------------------
my $host = hostname();
my $addr = inet_ntoa(scalar gethostbyname($host || 'localhost'));
my $cwd = abs_path();
my $blib = $cwd =~ /t$/ ? "$cwd/../blib" : "$cwd/blib";
my %pod_files = ();
my $podchecker = "$Config{prefix}/bin/podchecker";
if ($addr =~ /^$TEST_NET/) {
die "Can't find podchecker" unless -e $podchecker;
}
find({ wanted => \&pod_files, follow => 1 }, $blib);
my $num_tests = ((scalar keys %pod_files) * 2);
plan tests => $num_tests;
SKIP: {
skip "POD testing on non-dev machines", $num_tests
if $addr !~ /^$TEST_NET/;
for my $fullpath (sort keys %pod_files) {
my $file = $pod_files{$fullpath};
my $out = `$podchecker $fullpath 2>&1`;
is $?, 0, "No system errors checking $file";
unlike $out, '/(?si:WARNING|ERROR)/', "POD syntax check of $file"
or diag $out;
}
}
exit;
#------------------------------------------------------------
# Subs
#------------------------------------------------------------
sub pod_files {
printf STDERR "%-24s", "$_..." if $VERBOSE;
return unless -f $File::Find::name;
open F, "< $File::Find::name" or die "Can't open $_: $!";
$pod_files{$File::Find::name} = $_ if grep /^=head/, <F>;
close F or warn $!;
}
|