-#!./perl -Tw
+#!./perl -w
BEGIN {
chdir 't' if -d 't';
- @INC = ('../lib');
+ @INC = qw(. ../lib);
}
-use Config;
-
BEGIN {
- require Test::More;
+ use Config;
+
+ require "test.pl";
if( !$Config{d_crypt} ) {
- Test::More->import('skip_all');
+ skip_all("crypt unimplemented");
}
else {
- Test::More->import(tests => 2);
+ plan(tests => 4);
}
}
# C2 (or higher) security schemes, and non-UNIX platforms.
SKIP: {
- skip "crypt unimplemented", 2, unless $Config{d_crypt};
-
- ok(substr(crypt("ab", "cd"), 2) ne substr(crypt("ab", "ce"), 2), "salt makes a difference");
-
- ok(crypt("HI", "HO") eq crypt(join("",map{chr($_+256)}unpack"C*","HI"), "HO"), "low eight bits of Unicode");
+ skip ("VOS crypt ignores salt.", 1) if ($^O eq 'vos');
+ ok(substr(crypt("ab", "cd"), 2) ne substr(crypt("ab", "ce"), 2), "salt makes a difference");
}
+
+$a = "a\xFF\x{100}";
+
+eval {$b = crypt($a, "cd")};
+like($@, qr/Wide character in crypt/, "wide characters ungood");
+
+chop $a; # throw away the wide character
+
+eval {$b = crypt($a, "cd")};
+is($@, '', "downgrade to eight bit characters");
+is($b, crypt("a\xFF", "cd"), "downgrade results agree");
+