1#!perl -w 2 3use Test qw(plan ok); 4plan tests => 5; 5 6{ 7 package Digest::Foo; 8 require Digest::base; 9 use vars qw(@ISA $VERSION); 10 @ISA = qw(Digest::base); 11 12 sub new { 13 my $class = shift; 14 my $str = ""; 15 bless \$str, $class; 16 } 17 18 sub add { 19 my $self = shift; 20 $$self .= join("", @_); 21 return $self; 22 } 23 24 sub digest { 25 my $self = shift; 26 return sprintf "%04d", length($$self); 27 } 28} 29 30use Digest::file qw(digest_file digest_file_hex digest_file_base64); 31 32my $file = "test-$$"; 33die if -f $file; 34open(F, ">$file") || die "Can't create '$file': $!"; 35binmode(F); 36print F "foo\0\n"; 37close(F) || die "Can't write '$file': $!"; 38 39ok(digest_file($file, "Foo"), "0005"); 40 41if (ord('A') == 193) { # EBCDIC. 42 ok(digest_file_hex($file, "Foo"), "f0f0f0f5"); 43 ok(digest_file_base64($file, "Foo"), "8PDw9Q"); 44} else { 45 ok(digest_file_hex($file, "Foo"), "30303035"); 46 ok(digest_file_base64($file, "Foo"), "MDAwNQ"); 47} 48 49unlink($file) || warn "Can't unlink '$file': $!"; 50 51ok(eval { digest_file("not-there.txt", "Foo") }, undef); 52ok($@); 53