4 use Digest::MD5 qw(md5 md5_hex md5_base64);
7 # This is the output of: 'md5sum Changes README MD5.pm MD5.xs rfc1321.txt'
10 23cafa2de11474f0df8f808cc588bcc9 Changes
11 3519f3d02c7c91158f732f0f00064657 README
12 0268931475ae2a2e843ff58504cfa3f0 MD5.pm
13 1be293491bba726810f8e87671ee0328 MD5.xs
14 754b9db19f79dbc4992f7166eb0f37ce rfc1321.txt
17 if (!(-f "README") && -f "../README") {
18 chdir("..") or die "Can't chdir: $!";
24 eval { require MIME::Base64; };
27 print "Will not test base64 methods\n";
31 for (split /^/, $EXPECT) {
32 my($md5hex, $file) = split ' ';
33 my $md5bin = pack("H*", $md5hex);
36 $md5b64 = MIME::Base64::encode($md5bin, "");
37 chop($md5b64); chop($md5b64); # remove padding
41 if (digest_file($file, 'digest') ne $md5bin) {
42 print "$file: Bad digest\n";
46 if (digest_file($file, 'hexdigest') ne $md5hex) {
47 print "$file: Bad hexdigest\n";
51 if ($B64 && digest_file($file, 'b64digest') ne $md5b64) {
52 print "$file: Bad b64digest\n";
56 my $data = cat_file($file);
57 if (md5($data) ne $md5bin) {
58 print "$file: md5() failed\n";
61 if (md5_hex($data) ne $md5hex) {
62 print "$file: md5_hex() failed\n";
65 if ($B64 && md5_base64($data) ne $md5b64) {
66 print "$file: md5_base64() failed\n";
70 if (Digest::MD5->new->add($data)->digest ne $md5bin) {
71 print "$file: MD5->new->add(...)->digest failed\n";
74 if (Digest::MD5->new->add($data)->hexdigest ne $md5hex) {
75 print "$file: MD5->new->add(...)->hexdigest failed\n";
78 if ($B64 && Digest::MD5->new->add($data)->b64digest ne $md5b64) {
79 print "$file: MD5->new->add(...)->b64digest failed\n";
83 my @data = split //, $data;
84 if (md5(@data) ne $md5bin) {
85 print "$file: md5(\@data) failed\n";
88 if (Digest::MD5->new->add(@data)->digest ne $md5bin) {
89 print "$file: MD5->new->add(\@data)->digest failed\n";
92 my $md5 = Digest::MD5->new;
96 if ($md5->digest ne $md5bin) {
97 print "$file: $md5->add()-loop failed\n";
101 print "not " if $failed;
102 print "ok ", ++$testno, "\n";
108 my($file, $method) = @_;
109 $method ||= "digest";
110 #print "$file $method\n";
112 open(FILE, $file) or die "Can't open $file: $!";
114 my $digest = Digest::MD5->new->addfile(*FILE)->$method();
124 open(FILE, $file) or die "Can't open $file: $!";