X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstrictures.t;h=58104fa4f1a0e8b25138ab538e96c2048e32d9a2;hb=2c87c763a1f0c1441df268497510b45a45a6bdf3;hp=aecf3326a80af9eedca28152c852806b6e4d778c;hpb=12b8f19b42aca2e4872678b720287e45e0ee2083;p=p5sagit%2Fstrictures.git diff --git a/t/strictures.t b/t/strictures.t index aecf332..58104fa 100644 --- a/t/strictures.t +++ b/t/strictures.t @@ -34,6 +34,10 @@ foreach my $idx (0 .. $#us) { is($us[$idx][1], $expect[$idx][1], 'Warnings ok for case '.($idx+1)); } +my $v; +eval { $v = strictures->VERSION; 1 } or diag $@; +is $v, $strictures::VERSION, '->VERSION returns version correctly'; + SKIP: { skip 'Extra tests disabled on perls <= 5.008003', 1 if $] < 5.008004; @@ -47,11 +51,41 @@ SKIP: { sub Foo::new { 1 } chdir("t/smells-of-vcs"); local $strictures::Smells_Like_VCS = 1; - foreach my $file (qw(lib/one.pm t/one.t)) { + foreach my $file (qw(lib/one.pm t/one.faket)) { ok(!eval { require $file; 1 }, "Failed to load ${file}"); 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: { + 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" ); + } +}