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