1use strict; 2 3my $MODULE; 4 5BEGIN { 6 $MODULE = (-d "src") ? "Digest::SHA" : "Digest::SHA::PurePerl"; 7 eval "require $MODULE" || die $@; 8 $MODULE->import(qw(sha512_hex)); 9} 10 11BEGIN { 12 if ($ENV{PERL_CORE}) { 13 chdir 't' if -d 't'; 14 @INC = '../lib'; 15 } 16} 17 18my @vecs = map { eval } <DATA>; 19$#vecs -= 2 if $MODULE eq "Digest::SHA::PurePerl"; 20 21my $numtests = scalar(@vecs) / 2; 22print "1..$numtests\n"; 23 24my $skip = sha512_hex("") ? 0 : 1; 25 26for (1 .. $numtests) { 27 my $data = shift @vecs; 28 my $digest = shift @vecs; 29 unless ($skip) { 30 print "not " unless sha512_hex($data) eq $digest; 31 } 32 print "ok ", $_, $skip ? " # skip: no 64-bit" : "", "\n"; 33} 34 35__DATA__ 36"abc" 37"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f" 38"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu" 39"8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909" 40"a" x 1000000 41"e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b" 42