+BEGIN { delete $ENV{PERL_STRICTURES_EXTRA} }
+
# -e is sufficient here.
-e 't/smells-of-vcs/.git'
or mkdir('t/smells-of-vcs/.git')
sub capture_expect { push @expect, capture_stuff }
{
+ BEGIN { $ENV{PERL_STRICTURES_EXTRA} = 0 }
use strictures 1;
BEGIN { capture_us }
+ BEGIN { delete $ENV{PERL_STRICTURES_EXTRA} }
}
{
is($us[$idx][1], $expect[$idx][1], 'Warnings ok for case '.($idx+1));
}
-{
- local $0 = 't/00load.t';
+SKIP: {
+ skip 'Extra tests disabled on perls <= 5.008003', 1
+ if $] < 5.008004;
+ skip 'Not got all the modules to do this', 1
+ unless eval {
+ require indirect;
+ require multidimensional;
+ require bareword::filehandles;
+ 1;
+ };
sub Foo::new { 1 }
chdir("t/smells-of-vcs");
- my $r = eval q{
- use strictures 1;
- new Foo 1, 2, 3;
- };
- # I don't test $@ here since if indirect isn't installed we hit one
- # error and if it is we hit another; it's enough the code path's hit.
- ok(!$r, 'strictures blows up for t/00load.t');
+ local $strictures::Smells_Like_VCS = 1;
+ 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");
}
ok(!eval q{use strictures 2; 1; }, "Can't use strictures 2 (this is version 1)");