port build system to new style, fix POD tests to pass
[p5sagit/strictures.git] / t / strictures.t
1 use Test::More qw(no_plan);
2
3 our (@us, @expect);
4
5 sub capture_stuff { [ $^H, ${^WARNING_BITS} ] }
6
7 sub capture_us { push @us, capture_stuff }
8 sub capture_expect { push @expect, capture_stuff }
9
10 {
11   use strictures 1;
12   BEGIN { capture_us }
13 }
14
15 {
16   use strict;
17   use warnings FATAL => 'all';
18   BEGIN { capture_expect }
19 }
20
21 # I'm assuming here we'll have more cases later. maybe not. eh.
22
23 foreach my $idx (0 .. $#us) {
24   is($us[$idx][0], $expect[$idx][0], 'Hints ok for case '.($idx+1));
25   is($us[$idx][1], $expect[$idx][1], 'Warnings ok for case '.($idx+1));
26 }
27
28 {
29   local $0 = 't/00load.t';
30   sub Foo::new { 1 }
31   my $r = eval q{
32     use strictures 1;
33     new Foo 1, 2, 3;
34   };
35   # I don't test $@ here since if indirect isn't installed we hit one
36   # error and if it is we hit another; it's enough the code path's hit.
37   ok(!$r, 'strictures blows up for t/00load.t');
38 }
39
40 ok(!eval q{use strictures 2; 1; }, "Can't use strictures 2 (this is version 1)");