|
Packit Service |
8c15e4 |
#!/usr/bin/perl
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
#
|
|
Packit |
ef9df4 |
# Test that the primitive operators are working
|
|
Packit |
ef9df4 |
#
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
use Convert::ASN1;
|
|
Packit |
ef9df4 |
BEGIN { require 't/funcs.pl' }
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
print "1..16\n"; # This testcase needs more tests
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
btest 1, $asn = Convert::ASN1->new or warn $asn->error;
|
|
Packit |
ef9df4 |
btest 2, $asn->prepare(q(
|
|
Packit |
ef9df4 |
integer INTEGER OPTIONAL,
|
|
Packit |
ef9df4 |
str STRING
|
|
Packit |
ef9df4 |
)) or warn $asn->error;
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
$result = pack("C*", 0x4, 0x3, ord('a'), ord('b'), ord('c'));
|
|
Packit |
ef9df4 |
%input = (str => "abc");
|
|
Packit |
ef9df4 |
stest 3, $result, $asn->encode(%input) or warn $asn->error;
|
|
Packit |
ef9df4 |
btest 4, $ret = $asn->decode($result) or warn $asn->error;
|
|
Packit |
ef9df4 |
rtest 5, \%input, $ret;
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
$result = pack("C*", 0x2, 0x1, 0x9, 0x4, 0x3, ord('a'), ord('b'), ord('c'));
|
|
Packit |
ef9df4 |
%input = (integer => 9, str => "abc");
|
|
Packit |
ef9df4 |
stest 6, $result, $asn->encode(%input) or warn $asn->error;
|
|
Packit |
ef9df4 |
btest 7, $ret = $asn->decode($result) or warn $asn->error;
|
|
Packit |
ef9df4 |
rtest 8, \%input, $ret;
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
btest 9, not( $asn->encode(integer => 9));
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
btest 10, $asn->prepare( q(
|
|
Packit |
ef9df4 |
SEQUENCE {
|
|
Packit |
ef9df4 |
bar [0] SET OF INTEGER OPTIONAL,
|
|
Packit |
ef9df4 |
str OCTET STRING
|
|
Packit |
ef9df4 |
}
|
|
Packit |
ef9df4 |
)) or warn $asn->error;
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
%input = (str => 'Fred');
|
|
Packit |
ef9df4 |
$result = pack "H*", "3006040446726564";
|
|
Packit |
ef9df4 |
stest 11, $result, $asn->encode(%input);
|
|
Packit |
ef9df4 |
btest 12, $ret = $asn->decode($result) or warn $asn->error;
|
|
Packit |
ef9df4 |
rtest 13, \%input, $ret;
|
|
Packit |
ef9df4 |
|
|
Packit |
ef9df4 |
$result = pack "H*", "3011a009020101020105020103040446726564";
|
|
Packit |
ef9df4 |
%input = (str => 'Fred', bar => [1,5,3]);
|
|
Packit |
ef9df4 |
stest 14, $result, $asn->encode(%input);
|
|
Packit |
ef9df4 |
btest 15, $ret = $asn->decode($result) or warn $asn->error;
|
|
Packit |
ef9df4 |
rtest 16, \%input, $ret;
|