xref: /openbsd-src/gnu/usr.bin/perl/t/uni/eval.t (revision b8851fcc53cbe24fd20b090f26dd149e353f6174)
1898184e3Ssthen#!./perl
2898184e3Ssthen
3898184e3Ssthen# Check if eval correctly ignores the UTF-8 hint.
4898184e3Ssthen
5898184e3SsthenBEGIN {
6*b8851fccSafresh1    chdir 't' if -d 't';
7898184e3Ssthen    require './test.pl';
8898184e3Ssthen}
9898184e3Ssthen
10898184e3Ssthenplan (tests => 5);
11898184e3Ssthen
12898184e3Ssthenuse open qw( :utf8 :std );
13898184e3Ssthenuse feature 'unicode_eval';
14898184e3Ssthen
15898184e3Ssthen{
16898184e3Ssthen    my $w;
17898184e3Ssthen    $SIG{__WARN__} = sub { $w = shift };
18898184e3Ssthen    use utf8;
19898184e3Ssthen    my $prog = "qq!\x{f9}!";
20898184e3Ssthen
21898184e3Ssthen    eval $prog;
22898184e3Ssthen    ok !$w;
23898184e3Ssthen
24898184e3Ssthen    $w = "";
25898184e3Ssthen    utf8::upgrade($prog);
26898184e3Ssthen    eval $prog;
27898184e3Ssthen    is $w, '';
28898184e3Ssthen}
29898184e3Ssthen
30898184e3Ssthen{
31898184e3Ssthen    use utf8;
32898184e3Ssthen    isnt eval "q!\360\237\220\252!", eval "q!\x{1f42a}!";
33898184e3Ssthen}
34898184e3Ssthen
35898184e3Ssthen{
36898184e3Ssthen    no utf8; #Let's make real sure.
37898184e3Ssthen    my $not_utf8 = "q!\343\203\213!";
38898184e3Ssthen    isnt eval $not_utf8, eval "q!\x{30cb}!";
39898184e3Ssthen    {
40898184e3Ssthen        use utf8;
41898184e3Ssthen        isnt eval $not_utf8, eval "q!\x{30cb}!";
42898184e3Ssthen    }
43898184e3Ssthen}
44