refactor hints testing for better naming and flexibility
[p5sagit/strictures.git] / t / strictures.t
CommitLineData
967e00d7 1BEGIN { $ENV{PERL_STRICTURES_EXTRA} = 0 }
5ab06a4d 2
eae006ee 3use Test::More qw(no_plan);
4
967e00d7 5our ($hints, $warning_bits);
eae006ee 6
967e00d7 7sub capture_hints {
8 # ignore lexicalized hints
9 $hints = $^H & ~ 0x20000;
10 $warning_bits = defined ${^WARNING_BITS} ? (unpack "H*", ${^WARNING_BITS}) : undef;
11}
eae006ee 12
967e00d7 13sub test_hints {
14 my $name = shift;
15 my $want_hints = $hints;
16 my $want_bits = $warning_bits;
17 capture_hints;
18 is($hints, $want_hints, "Hints ok for $name");
19 is($warning_bits, $want_bits, "Warnings ok for $name");
eae006ee 20}
21
22{
23 use strict;
24 use warnings FATAL => 'all';
967e00d7 25 BEGIN { capture_hints }
eae006ee 26}
27
967e00d7 28{
29 use strictures 1;
30 BEGIN { test_hints "version 1" }
eae006ee 31}
32
91b5f6b6 33my $v;
34eval { $v = strictures->VERSION; 1 } or diag $@;
35is $v, $strictures::VERSION, '->VERSION returns version correctly';
36
eae006ee 37ok(!eval q{use strictures 2; 1; }, "Can't use strictures 2 (this is version 1)");