1#!perl
2
3use strict;
4use warnings;
5use Perl::Lint::Policy::ValuesAndExpressions::ProhibitConstantPragma;
6use t::Policy::Util qw/fetch_violations/;
7use Test::Base::Less;
8
9my $class_name = 'ValuesAndExpressions::ProhibitConstantPragma';
10
11filters {
12    params => [qw/eval/], # TODO wrong!
13};
14
15for my $block (blocks) {
16    my $violations = fetch_violations($class_name, $block->input, $block->params);
17    is scalar @$violations, $block->failures, $block->dscr;
18}
19
20done_testing;
21
22__DATA__
23
24===
25--- dscr: Basic passing
26--- failures: 0
27--- params:
28--- input
29my $FOO = 42;
30local BAR = 24;
31our $NUTS = 16;
32
33===
34--- dscr: Basic failure
35--- failures: 2
36--- params:
37--- input
38use constant FOO => 42;
39use constant BAR => 24;
40
41===
42--- dscr: no lint
43--- failures: 4
44--- params:
45--- input
46use constant FOO => 42;
47use constant BAR => 24;
48use constant BAR => 24; ## no lint
49use constant FOO => 42;
50use constant BAR => 24;
51
52