1#!/usr/bin/perl 2 3use warnings 'all'; 4use strict; 5 6BEGIN { 7 use Test::More; 8 # Don't run tests for installs 9 unless ($ENV{RELEASE_TESTING}) { 10 plan skip_all => 'Author tests not required for installation (set RELEASE_TESTING to test)'; 11 } 12} 13 14# CPANTORPM-DEPREQ REQEXCL File::Basename 15# CPANTORPM-DEPREQ REQEXCL Cwd 16# CPANTORPM-DEPREQ REQEXCL Test::Pod 17 18use File::Basename; 19use Cwd 'abs_path'; 20use Test::Pod 1.00; 21 22# Figure out the directories. This comes from Test::Inter. 23 24my($moddir,$testdir,$libdir); 25 26BEGIN { 27 if (-f "$0") { 28 $moddir = dirname(dirname(abs_path($0))); 29 } elsif (-d "./t") { 30 $moddir = dirname(abs_path('.')); 31 } elsif (-d "../t") { 32 $moddir = dirname(abs_path('..')); 33 } 34 if (-d "$moddir/t") { 35 $testdir = "$moddir/t"; 36 } 37 if (-d "$moddir/lib") { 38 $libdir = "$moddir/lib"; 39 } 40} 41 42# If there is a file _pod.ign, it should be a list of filename 43# substrings to ignore (any file with any of these substrings 44# will be ignored). 45# 46# If there is a file named _pod.dirs, then pod files will be looked 47# at in those directories (instead of the default of all directories). 48 49my @ign = (); 50if (-f "$testdir/_pod.ign") { 51 open(IN,"$testdir/_pod.ign"); 52 @ign = <IN>; 53 close(IN); 54 chomp(@ign); 55} 56 57my @dirs = (); 58if (-f "$testdir/_pod.dirs") { 59 open(IN,"$testdir/_pod.dirs"); 60 @dirs = <IN>; 61 close(IN); 62 chomp(@dirs); 63} 64 65# 66# Test that the syntax of our POD documentation is valid. 67# 68 69chdir($moddir); 70 71if (@ign) { 72 73 my @file = all_pod_files(@dirs); 74 my @test; 75 76 FILE: 77 foreach my $file (@file) { 78 foreach my $ign (@ign) { 79 next FILE if ($file =~ /\Q$ign\E/); 80 } 81 push(@test,$file); 82 } 83 84 plan tests => scalar(@test); 85 foreach my $file (@test) { 86 pod_file_ok($file); 87 } 88 89} else { 90 all_pod_files_ok(@dirs); 91} 92