summaryrefslogtreecommitdiff
path: root/dist/encoding-warnings/t/4-lexical.t
blob: 89a1a86e2efba82703173aecf8f490b2f28d3bff (plain)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
use strict;
use warnings;
BEGIN {
    if ("$]" >= 5.025) {
        print "1..0 # Skip: encoding::warnings not supported on perl 5.26\n";
        exit 0;
    }
    if (ord("A") != 65) {
        print "1..0 # Skip: Encode not working on EBCDIC\n";
        exit 0;
    }
    use Config;
    if ($Config::Config{'extensions'} !~ /\bEncode\b/) {
        print "1..0 # Skip: Encode was not built\n";
        exit 0;
    }

}

use Test::More tests => 3;

{
    use encoding::warnings;
    ok(encoding::warnings->VERSION);

    if ($] < 5.009004) {
        ok('skipped');
        ok('skipped');
        exit;
    }

    my ($a, $b, $c, $warned);

    local $SIG{__WARN__} = sub {
        if ($_[0] =~ /upgraded/) { $warned = 1 }
    };

    utf8::encode($a = chr(20000));
    $b = chr(20000);
    $c = $a . $b;
    ok($warned);
}

{
    my ($a, $b, $c, $warned);

    local $SIG{__WARN__} = sub {
        if ($_[0] =~ /upgraded/) { $warned = 1 }
    };

    utf8::encode($a = chr(20000));
    $b = chr(20000);
    $c = $a . $b;
    ok(!$warned);
}


__END__