xref: /openbsd/gnu/usr.bin/perl/cpan/Digest/t/file.t (revision 73471bf0)
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