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