This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
1ad033b676915684856bf66a6f18fd916796e0d0
[perl5.git] / cpan / Encode / t / taint.t
1 #!/usr/bin/perl -T
2 use strict;
3 use Encode qw(encode decode);
4 use Scalar::Util qw(tainted);
5 use Test::More;
6 my $str = "dan\x{5f3e}" . substr($ENV{PATH},0,0); # tainted string to encode
7 my $bin = encode('UTF-8', $str);                  # tainted binary to decode
8 my @names = Encode->encodings(':all');
9 plan tests => 2 * @names;
10 for my $name (@names) {
11     my ($d, $e, $s);
12     eval {
13         $e = encode($name, $str);
14     };
15   SKIP: {
16       skip $@, 1 if $@;
17       ok tainted($e), "encode $name";
18     }
19     $bin = $e if $e;
20     eval {
21         $d = decode($name, $bin);
22     };
23   SKIP: {
24       skip $@, 1 if $@;
25       ok tainted($d), "decode $name";
26     }
27 }