ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CBOR-XS/t/57_incr.t
Revision: 1.5
Committed: Sun Jan 5 14:54:46 2014 UTC (10 years, 4 months ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-1_8, rel-1_71, rel-1_4, rel-1_5, rel-1_41, rel-1_82, rel-1_83, rel-1_3, rel-1_81, rel-1_86, rel-1_87, rel-1_84, rel-1_85, rel-1_7, rel-1_26, rel-1_6, HEAD
Changes since 1.4: +4 -3 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 BEGIN { $| = 1; print "1..123\n"; }
2
3 use CBOR::XS;
4
5 print "ok 1\n";
6 my $tst = 1;
7
8 sub tst($$) {
9 my ($cbor, $correct) = @_;
10
11 my $dec = CBOR::XS->new;
12
13 # chop
14 for my $step (1 .. length $cbor) {
15 my $buf = "";
16 my @cbor;
17
18 $dec->incr_reset;
19
20 for (unpack "(a$step)*", $cbor) {
21 $buf .= $_;
22 push @cbor, $dec->incr_parse_multiple ($buf);
23 }
24
25 print length $buf ? "not " : "", "ok ", ++$tst, "\n";
26
27 my $enc = join " ", map +(unpack "H*", encode_cbor $_), @cbor;
28
29 print $enc eq $correct ? "" : "not ", "ok ", ++$tst, " # ($step) $enc eq $correct\n";
30 }
31 }
32
33 sub err($$) {
34 if (eval { CBOR::XS->new->max_size (1e3)->incr_parse ($_[0]); 1 }) {
35 print "not ok ", ++$tst, " # unexpected success\n";
36 } elsif ($@ =~ $_[1]) {
37 print "ok ", ++$tst, "\n";
38 } else {
39 print "not ok ", ++$tst, " # $@\n";
40 }
41 }
42
43 tst "\x81\x82\x81\x80\x80\x80", "8182818080 80";
44 tst "\x01\x18\x55\x01", "01 1855 01";
45 #tst "\x18\x01\x19\x02\x02\x1a\x04\x04\x04\x04\x1b\x08\x08\x08\x08\x08\x08\x08\x08\x00", "01 190202 1a04040404 1b0808080808080808 00";
46 tst "\x18\x01\x19\x02\x02\x1a\x04\x04\x04\x04\x00", "01 190202 1a04040404 00";
47 tst "\x41A\x42CD", "4141 424344";
48 tst "\x58\x01A\x59\x00\x01B\x5a\x00\x00\x00\x01C\x5b\x00\x00\x00\x00\x00\x00\x00\x02XY\x01", "4141 4142 4143 425859 01";
49 tst "\x5f\x41A\x41B\x42CD\xff", "4441424344";
50 err "\xff", "major 7";
51 err "\x5a\xff\x00\x00\x00", "max_size";
52