9 use Digest::MD5 qw(md5 md5_hex md5_base64);
12 # This is the output of: 'md5sum MD5.pm MD5.xs'
16 if (ord('A') == 193) { # EBCDIC
18 ee6a09094632cd610199278bbb0f910e ext/Digest/MD5/MD5.pm
19 94f873d905cd20a12d8ef4cdbdbcd89f ext/Digest/MD5/MD5.xs
23 665ddc08b12d6b1bf85ac6dc5aae68b3 ext/Digest/MD5/MD5.pm
24 5f21e907b2e7dbffe6aba2c762ea93d0 ext/Digest/MD5/MD5.xs
29 eval { require MIME::Base64; };
32 print "# Will not test base64 methods\n";
40 for (split /^/, $EXPECT) {
41 my($md5hex, $file) = split ' ';
42 my @path = split(m:/:, $file);
44 my $path = File::Spec->updir;
46 $path = File::Spec->catdir($path, shift @path);
48 $file = File::Spec->catfile($path, $last);
49 my $md5bin = pack("H*", $md5hex);
52 $md5b64 = MIME::Base64::encode($md5bin, "");
53 chop($md5b64); chop($md5b64); # remove padding
57 if (digest_file($file, 'digest') ne $md5bin) {
58 print "$file: Bad digest\n";
62 if (digest_file($file, 'hexdigest') ne $md5hex) {
63 print "$file: Bad hexdigest\n";
67 if ($B64 && digest_file($file, 'b64digest') ne $md5b64) {
68 print "$file: Bad b64digest\n";
72 my $data = cat_file($file);
73 if (md5($data) ne $md5bin) {
74 print "$file: md5() failed\n";
77 if (md5_hex($data) ne $md5hex) {
78 print "$file: md5_hex() failed\n";
81 if ($B64 && md5_base64($data) ne $md5b64) {
82 print "$file: md5_base64() failed\n";
86 if (Digest::MD5->new->add($data)->digest ne $md5bin) {
87 print "$file: MD5->new->add(...)->digest failed\n";
90 if (Digest::MD5->new->add($data)->hexdigest ne $md5hex) {
91 print "$file: MD5->new->add(...)->hexdigest failed\n";
94 if ($B64 && Digest::MD5->new->add($data)->b64digest ne $md5b64) {
95 print "$file: MD5->new->add(...)->b64digest failed\n";
99 my @data = split //, $data;
100 if (md5(@data) ne $md5bin) {
101 print "$file: md5(\@data) failed\n";
104 if (Digest::MD5->new->add(@data)->digest ne $md5bin) {
105 print "$file: MD5->new->add(\@data)->digest failed\n";
108 my $md5 = Digest::MD5->new;
112 if ($md5->digest ne $md5bin) {
113 print "$file: $md5->add()-loop failed\n";
117 print "not " if $failed;
118 print "ok ", ++$testno, "\n";
124 my($file, $method) = @_;
125 $method ||= "digest";
126 #print "$file $method\n";
128 open(FILE, $file) or die "Can't open $file: $!";
129 # Digests above are generated on UNIX without CRLF
130 # so leave handles in text mode
132 my $digest = Digest::MD5->new->addfile(*FILE)->$method();
142 open(FILE, $file) or die "Can't open $file: $!";
143 # Digests above are generated on UNIX without CRLF
144 # so leave handles in text mode