File: fatal.t

package info (click to toggle)
libregexp-grammars-perl 1.058-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,328 kB
  • sloc: perl: 53,328; makefile: 2
file content (43 lines) | stat: -rw-r--r-- 1,322 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
use 5.010;
use warnings;

use Test::More;
plan 'no_plan';

my %AcceptableVersions = (
    '0.95' => 1,
    '0.98' => 1,
    '1.01' => 1,
);

my %UnacceptableVersions = (
    '0.99' => 1,
    '1.00' => 1,
);

my $version_checker = do{
    use Regexp::Grammars;
    qr{
        <Valid_Language_Version>

        <rule: Valid_Language_Version>
              vers = <%AcceptableVersions>
            |
              vers = <badversion=%UnacceptableVersions>
              <fatal: (?{ "Cannot parse language version $MATCH{badversion}" })>
            |
              vers = <fatal:>
    }xms;
};

ok 'vers = 0.95' =~ $version_checker => 'Matched version 0.95';
ok @! == 0                           => 'with no error messages';

ok 'vers = 0.99' !~ $version_checker           => 'Correctly failed to match version 0.99';
ok @! == 1                                     => 'with correct number of error messages';
is $![0], 'Cannot parse language version 0.99' => 'with correct error message';

ok 'vers = 0.96' !~ $version_checker           => 'Correctly failed to match version 0.96';
ok @! == 1                                     => 'with correct number of error messages';
is $![0], q{Expected valid language version, but found '0.96' instead}
                                               => 'with correct error message';