#!/usr/bin/perl # Test that the syntax of our POD documentation is valid use strict; BEGIN { $| = 1; $^W = 1; } my $MODULE = 'Test::Pod 1.00'; # Don't run tests for installs use Test::More; unless ( $ENV{AUTOMATED_TESTING} or $ENV{RELEASE_TESTING} ) { plan( skip_all => "Author tests not required for installation" ); } # Load the testing module eval "use $MODULE"; if ( $@ ) { $ENV{RELEASE_TESTING} ? die( "Failed to load required release-testing module $MODULE" ) : plan( skip_all => "$MODULE not available for testing" ); } all_pod_files_ok(); ##################################################################### # WARNING: INSANE BLACK MAGIC ##################################################################### # Hack Pod::Simple::BlackBox to ignore the Test::Inline # "Extended Begin" syntax. # For example, "=begin has more than one word errors" my $begin; if ( $Test::Pod::VERSION ) { $begin = \&Pod::Simple::BlackBox::_ponder_begin; } sub mybegin { my $para = $_[1]; my $content = join ' ', splice @$para, 2; $content =~ s/^\s+//s; $content =~ s/\s+$//s; my @words = split /\s+/, $content; if ( $words[0] =~ /^test(?:ing)?\z/s ) { foreach ( 2 .. $#$para ) { $para->[$_] = ''; } $para->[2] = $words[0]; } # Continue as normal push @$para, @words; return &$begin(@_); } SCOPE: { local $^W = 0; if ( $Test::Pod::VERSION ) { *Pod::Simple::BlackBox::_ponder_begin = \&mybegin; } } ##################################################################### # END BLACK MAGIC #####################################################################