BEGIN { $ENV{PERL_STRICTURES_EXTRA} = 0 }
+sub _eval { eval $_[0] }
+
+use Test::More 0.88;
+
+use strict;
+use warnings;
+use Test::More;
+
sub capture_hints {
my $code = shift;
- my ($hints, $warning_bits);
$code .= q{
;
- BEGIN {
- # ignore lexicalized hints
- $hints = $^H & ~ 0x20000;
- $warning_bits = defined ${^WARNING_BITS} ? (unpack "H*", ${^WARNING_BITS}) : undef;
- };
- 1;
+ my @h;
+ BEGIN { @h = ( $^H, ${^WARNING_BITS} ) }
+ @h;
};
- eval $code or die $@;
+ my ($hints, $warning_bits) = _eval $code or die $@;
+ # ignore lexicalized hints
+ $hints &= ~ 0x20000;
+ $warning_bits = unpack "H*", $warning_bits
+ if defined $warning_bits;
return ($hints, $warning_bits);
}
-use strict;
-use warnings;
-use Test::More qw(no_plan);
-
sub compare_hints {
my ($code_want, $code_got, $name) = @_;
my ($want_hints, $want_warnings) = capture_hints $code_want;
eval { $v = strictures->VERSION; 1 } or diag $@;
is $v, $strictures::VERSION, '->VERSION returns version correctly';
-my $next = int $v + 1;
+my $next = int $strictures::VERSION + 1;
eval qq{ use strictures $next; };
like $@, qr/strictures version $next required/,
"Can't use strictures $next (this is version $v)";
+
+eval qq{ use strictures {version => $next}; };
+
+like $@, qr/Major version specified as $next - not supported/,
+ "Can't use strictures version option $next (this is version $v)";
+
+eval qq{ use strictures {version => undef}; };
+
+like $@, qr/Major version specified as undef - not supported/,
+ "Can't use strictures version option undef";
+
+eval qq{ use strictures $strictures::VERSION; };
+
+is $@, '',
+ "Can use current strictures version";
+
+done_testing;