Move Digest from lib to ext
[p5sagit/p5-mst-13.2.git] / ext / Digest / t / file.t
CommitLineData
a9acc356 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");
cf0d1c66 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}
a9acc356 48
49unlink($file) || warn "Can't unlink '$file': $!";
50
51ok(eval { digest_file("not-there.txt", "Foo") }, undef);
52ok($@);