xref: /openbsd/gnu/usr.bin/perl/cpan/Digest-MD5/t/clone.t (revision d415bd75)
1#!perl -w
2
3use strict;
4use warnings;
5
6use Digest::MD5 qw(md5_hex);
7
8print "1..6\n";
9
10my $a = Digest::MD5->new;
11$a->add("a");
12my $b = $a->clone;
13
14print "not " unless $b->clone->hexdigest eq md5_hex("a");
15print "ok 1\n";
16
17$a->add("a");
18print "not " unless $a->hexdigest eq md5_hex("aa");
19print "ok 2\n";
20
21print "not " unless $a->hexdigest eq md5_hex("");
22print "ok 3\n";
23
24$b->add("b");
25print "not " unless $b->clone->hexdigest eq md5_hex("ab");
26print "ok 4\n";
27
28$b->add("c");
29print "not " unless $b->clone->hexdigest eq md5_hex("abc");
30print "ok 5\n";
31
32# Test that cloning picks up the correct class for subclasses.
33{
34   package MD5;
35   @MD5::ISA = qw(Digest::MD5);
36}
37
38$a = MD5->new;
39$a->add("a");
40$b = $a->clone;
41
42print "not " unless ref($b) eq "MD5" && $b->add("b")->hexdigest eq md5_hex("ab");
43print "ok 6\n";
44