From: Christian Walde Date: Mon, 12 Nov 2012 13:13:25 +0000 (+0100) Subject: added test on reporting of failure to load extra deps X-Git-Tag: v1.005000~16 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a91e95ab1318e780f5768d677889cb021377c28c;p=p5sagit%2Fstrictures.git added test on reporting of failure to load extra deps --- diff --git a/lib/strictures.pm b/lib/strictures.pm index 1170a25..fb019d4 100644 --- a/lib/strictures.pm +++ b/lib/strictures.pm @@ -21,7 +21,7 @@ sub VERSION { shift->SUPER::VERSION(@_); } -my $extra_load_states; +our $extra_load_states; our $Smells_Like_VCS = (-e '.git' || -e '.svn' || (-e '../../dist.ini' && (-e '../../.git' || -e '../../.svn'))); diff --git a/t/dep_constellations/broken/bareword/filehandles.pm b/t/dep_constellations/broken/bareword/filehandles.pm new file mode 100644 index 0000000..e69de29 diff --git a/t/dep_constellations/broken/indirect.pm b/t/dep_constellations/broken/indirect.pm new file mode 100644 index 0000000..e69de29 diff --git a/t/dep_constellations/broken/multidimensional.pm b/t/dep_constellations/broken/multidimensional.pm new file mode 100644 index 0000000..e69de29 diff --git a/t/strictures.t b/t/strictures.t index 98919ee..4f6b020 100644 --- a/t/strictures.t +++ b/t/strictures.t @@ -52,6 +52,36 @@ SKIP: { like($@, qr{Indirect call of method}, "Failed due to indirect.pm, ok"); } ok(eval { require "other/one.pl"; 1 }, "Loaded other/one.pl ok"); + chdir("../.."); } ok(!eval q{use strictures 2; 1; }, "Can't use strictures 2 (this is version 1)"); + +{ + skip 'Extra tests disabled on perls <= 5.008003', 1 + if $] < 5.008004; + local $ENV{PERL_STRICTURES_EXTRA} = 1; + local $strictures::extra_load_states = undef; + local @INC = ("t/dep_constellations/broken", @INC); + local %INC = %INC; + delete $INC{$_} + for qw( indirect.pm multidimensional.pm bareword/filehandles.pm ); + + { + open my $fh, '>', \my $str; + local *STDERR = $fh; + strictures->import; + like( + $str, + qr/Missing were:\n\n indirect multidimensional bareword::filehandles/, + "failure to load all three extra deps is reported" + ); + } + + { + open my $fh, '>', \my $str; + local *STDERR = $fh; + strictures->import; + ok( !$str, "extra dep load failure is not reported a second time" ); + } +}