author test for new warning categories
[p5sagit/strictures.git] / xt / all-categories.t
1 use strict;
2 use warnings;
3
4 BEGIN { $ENV{PERL_STRICTURES_EXTRA} = 0 }
5
6 use strictures ();
7
8 # avoid loading Test::More, since it adds warning categories
9
10 my %known_cats; @known_cats{@strictures::WARNING_CATEGORIES} = ();
11 my %core_cats; @core_cats{grep $_ ne 'all', keys %warnings::Offsets} = ();
12 my @missing = sort grep { !exists $known_cats{$_} } keys %core_cats;
13 my @extra   = sort grep { !exists $core_cats{$_} } keys %known_cats;
14
15 print "1..2\n";
16
17 print((@missing ? 'not ' : '') . "ok 1 - strictures includes all warning categories\n");
18 if (@missing) {
19   print STDERR "# strictures is missing categories:\n";
20   print STDERR "#   $_\n"
21     for @missing;
22 }
23
24 print((@extra ? 'not ' : '') . "ok 2 - strictures includes no extra categories\n");
25 if (@extra) {
26   print STDERR "# strictures lists extra categories:\n";
27   print STDERR "#   $_\n"
28     for @extra;
29 }
30
31 if (@missing || @extra) {
32   exit 1;
33 }