| 1 |
BEGIN { $| = 1; print "1..21\n"; } |
| 2 |
|
| 3 |
# none of the other tests serialise hv's, gross |
| 4 |
# also checks text_keys/text_strings |
| 5 |
|
| 6 |
use CBOR::XS; |
| 7 |
|
| 8 |
print "ok 1\n"; |
| 9 |
|
| 10 |
$enc = encode_cbor {}; |
| 11 |
print $enc ne "\xa0" ? "not " : "", "ok 2\n"; |
| 12 |
|
| 13 |
$enc = encode_cbor { 5 => 6 }; |
| 14 |
print $enc ne (pack "H*", "a1413506") ? "not " : "", "ok 3\n"; |
| 15 |
|
| 16 |
$enc = encode_cbor { "" => \my $dummy }; |
| 17 |
print $enc ne (pack "H*", "a140d95652f6") ? "not " : "", "ok 4\n"; |
| 18 |
|
| 19 |
$enc = encode_cbor { undef() => \my $dummy }; |
| 20 |
print $enc ne (pack "H*", "a140d95652f6") ? "not " : "", "ok 5\n"; |
| 21 |
|
| 22 |
$enc = encode_cbor { "abc" => "def" }; |
| 23 |
print $enc ne (pack "H*", "a14361626343646566") ? "not " : "", "ok 6\n"; |
| 24 |
|
| 25 |
$enc = encode_cbor { "abc" => "def", "geh" => "ijk" }; |
| 26 |
print $enc !~ /^\xa2/ ? "not " : "", "ok 7\n"; |
| 27 |
print 17 ne length $enc ? "not " : "", "ok 8\n"; |
| 28 |
|
| 29 |
$enc = encode_cbor { "\x{7f}" => undef }; |
| 30 |
print $enc ne (pack "H*", "a1417ff6") ? "not " : "", "ok 9\n"; |
| 31 |
|
| 32 |
$dec = decode_cbor pack "H*", "a1417ff6"; |
| 33 |
print +(keys %$dec)[0] ne "\x{7f}" ? "not " : "", "ok 10\n"; |
| 34 |
|
| 35 |
$enc = encode_cbor { "\x{100}" => undef }; |
| 36 |
print $enc ne (pack "H*", "a162c480f6") ? "not " : "", "ok 11\n"; |
| 37 |
|
| 38 |
$dec = decode_cbor pack "H*", "a162c480f6"; |
| 39 |
print +(keys %$dec)[0] ne "\x{100}" ? "not " : "", "ok 12\n"; |
| 40 |
|
| 41 |
$enc = encode_cbor { "\x{8f}" => undef }; |
| 42 |
print $enc ne (pack "H*", "a1418ff6") ? "not " : "", "ok 13\n"; |
| 43 |
|
| 44 |
$text_strings = CBOR::XS->new->text_strings; |
| 45 |
|
| 46 |
$enc = $text_strings->encode ({ "\x{7f}" => "\x{3f}" }); |
| 47 |
print $enc ne (pack "H*", "a1617f613f") ? "not " : "", "ok 14\n"; |
| 48 |
|
| 49 |
$enc = $text_strings->encode ({ "\x{8f}" => "\x{c7}" }); |
| 50 |
print $enc ne (pack "H*", "a162c28f62c387") ? "not " : "", "ok 15\n"; |
| 51 |
|
| 52 |
$enc = $text_strings->encode ({ "\x{8f}gix\x{ff}x" => "a\x{80}b\x{fe}y" }); |
| 53 |
print $enc ne (pack "H*", "a168c28f676978c3bf786761c28062c3be79") ? "not " : "", "ok 16\n"; |
| 54 |
|
| 55 |
$dec = decode_cbor pack "H*", "a168c28f676978c3bf78f6"; |
| 56 |
print +(keys %$dec)[0] ne "\x{8f}gix\x{ff}x" ? "not " : "", "ok 17\n"; |
| 57 |
|
| 58 |
$text_keys = CBOR::XS->new->text_keys; |
| 59 |
|
| 60 |
$enc = $text_keys->encode ({ "\x{7f}" => "\x{3f}" }); |
| 61 |
print $enc ne (pack "H*", "a1617f413f") ? "not " : "", "ok 18\n"; |
| 62 |
|
| 63 |
$enc = $text_keys->encode ({ "\x{8f}" => "\x{c7}" }); |
| 64 |
print $enc ne (pack "H*", "a162c28f41c7") ? "not " : "", "ok 19\n"; |
| 65 |
|
| 66 |
$enc = $text_keys->encode ({ "\x{8f}gix\x{ff}x" => "a\x{80}b\x{fe}y" }); |
| 67 |
print $enc ne (pack "H*", "a168c28f676978c3bf7845618062fe79") ? "not " : "", "ok 20\n"; |
| 68 |
|
| 69 |
print "ok 21\n"; |
| 70 |
|