This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Digest to CPAN version 1.17
[perl5.git] / cpan / Digest / t / file.t
1 #!perl -w
2
3 use 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
29 use Digest::file qw(digest_file digest_file_hex digest_file_base64);
30
31 my $file = "test-$$";
32 die if -f $file;
33 open(F, ">$file") || die "Can't create '$file': $!";
34 binmode(F);
35 print F "foo\0\n";
36 close(F) || die "Can't write '$file': $!";
37
38 is(digest_file($file, "Foo"), "0005");
39
40 if (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
48 unlink($file) || warn "Can't unlink '$file': $!";
49
50 ok !eval { digest_file("not-there.txt", "Foo") };
51 ok $@;