1N/A#!perl -w
1N/A
1N/ABEGIN {
1N/A if ($] < 5.006) {
1N/A print "1..0 # Skipped: your perl don't know unicode\n";
1N/A exit;
1N/A }
1N/A}
1N/A
1N/Aprint "1..3\n";
1N/A
1N/Ause strict;
1N/Ause Digest::MD5 qw(md5_hex);
1N/A
1N/Amy $str;
1N/A$str = "foo\xFF\x{100}";
1N/A
1N/Aeval {
1N/A print md5_hex($str);
1N/A print "not ok 1\n"; # should not run
1N/A};
1N/Aprint "not " unless $@ && $@ =~ /^(Big byte|Wide character)/;
1N/Aprint "ok 1\n";
1N/A
1N/Amy $exp = ord "A" == 193 ? # EBCDIC
1N/A "c307ec81deba65e9a222ca81cd8f6ccd" :
1N/A "503debffe559537231ed24f25651ec20"; # Latin 1
1N/A
1N/Achop($str); # only bytes left
1N/Aprint "not " unless md5_hex($str) eq $exp;
1N/Aprint "ok 2\n";
1N/A
1N/A# reference
1N/Aprint "not " unless md5_hex("foo\xFF") eq $exp;
1N/Aprint "ok 3\n";