base.t

来自「source of perl for linux application,」· T 代码 · 共 85 行

T
85
字号
#!perl -wuse Test qw(plan ok);plan tests => 12;{   package LenDigest;   require Digest::base;   use vars qw(@ISA);   @ISA = qw(Digest::base);   sub new {	my $class = shift;	my $str = "";	bless \$str, $class;   }   sub add {	my $self = shift;	$$self .= join("", @_);	return $self;   }   sub digest {	my $self = shift;	my $len = length($$self);	my $first = ($len > 0) ? substr($$self, 0, 1) : "X";	$$self = "";	return sprintf "$first%04d", $len;   }}my $ctx = LenDigest->new;ok($ctx->digest, "X0000");my $EBCDIC = ord('A') == 193;if ($EBCDIC) {    ok($ctx->hexdigest, "e7f0f0f0f0");    ok($ctx->b64digest, "5/Dw8PA");} else {    ok($ctx->hexdigest, "5830303030");    ok($ctx->b64digest, "WDAwMDA");}$ctx->add("foo");ok($ctx->digest, "f0003");$ctx->add("foo");ok($ctx->hexdigest, $EBCDIC ? "86f0f0f0f3" : "6630303033");$ctx->add("foo");ok($ctx->b64digest, $EBCDIC ? "hvDw8PM" : "ZjAwMDM");open(F, ">xxtest$$") || die;binmode(F);print F "abc" x 100, "\n";close(F) || die;open(F, "xxtest$$") || die;$ctx->addfile(*F);close(F);unlink("xxtest$$") || warn;ok($ctx->digest, "a0301");eval {    $ctx->add_bits("1010");};ok($@ =~ /^Number of bits must be multiple of 8/);$ctx->add_bits($EBCDIC ? "11100100" : "01010101");ok($ctx->digest, "U0001");eval {    $ctx->add_bits("abc", 12);};ok($@ =~ /^Number of bits must be multiple of 8/);$ctx->add_bits("abc", 16);ok($ctx->digest, "a0002");$ctx->add_bits("abc", 32);ok($ctx->digest, "a0003");

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?