File: boolean-invalid.t

package info (click to toggle)
libyaml-libyaml-perl 0.76%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 688 kB
  • sloc: perl: 1,603; ansic: 1,140; sh: 29; makefile: 4
file content (36 lines) | stat: -rw-r--r-- 1,013 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
use FindBin '$Bin';
use lib $Bin;
use TestYAMLTests;

my @disable = (['int 0', 0], ['string 0', '0'], ['empty string', ''], ['undef', undef]);
my @invalid = (['int 1', 1], ['string 1', '1'], ['string foo', 'foo']);
my $tests = (@disable + 2 * @invalid);
plan tests => $tests;

for (@invalid) {
    my ($label, $test) = @$_;
    local $YAML::XS::Boolean = $test;

    my $data = eval { Load "dummy" };
#    $@ and diag "ERROR: $@";
    cmp_ok($@, '=~', qr{accepts}, "YAML::XS::Load: $label is an invalid setting");

    my $yaml = eval { Dump { foo => 42 } };
#    $@ and diag "ERROR: $@";
    cmp_ok($@, '=~', qr{accepts}, "YAML::XS::Dump: $label is an invalid setting");
}

for (@disable) {
    my ($label, $test) = @$_;
    local $YAML::XS::Boolean = $test;

    my $data = eval { Load "true" };
    if ($@) {
        diag "ERROR: $@";
        ok(0, "$label disables YAML::XS::Boolean");
    }
    else {
        my $ref = ref $data;
        cmp_ok($ref, 'eq', '', "$label disables YAML::XS::Boolean");
    }
}