File: 04opt.t

package info (click to toggle)
libconvert-asn1-perl 0.34-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 468 kB
  • sloc: perl: 4,526; yacc: 544; makefile: 2
file content (49 lines) | stat: -rw-r--r-- 1,416 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/local/bin/perl

#
# Test that the primitive operators are working
#

use Convert::ASN1;
BEGIN { require './t/funcs.pl' }

print "1..16\n"; # This testcase needs more tests

btest 1, $asn = Convert::ASN1->new or warn $asn->error;
btest 2, $asn->prepare(q(
 integer INTEGER OPTIONAL,
 str STRING
)) or warn $asn->error;

$result = pack("C*", 0x4, 0x3, ord('a'), ord('b'), ord('c'));
%input  = (str => "abc");
stest 3, $result, $asn->encode(%input) or warn $asn->error;
btest 4, $ret = $asn->decode($result) or warn $asn->error;
rtest 5, \%input, $ret;

$result = pack("C*", 0x2, 0x1, 0x9, 0x4, 0x3, ord('a'), ord('b'), ord('c'));
%input  = (integer => 9, str => "abc");
stest 6, $result, $asn->encode(%input) or warn $asn->error;
btest 7, $ret = $asn->decode($result) or warn $asn->error;
rtest 8, \%input, $ret;

btest 9, not( $asn->encode(integer => 9));

btest 10, $asn->prepare( q(
  SEQUENCE {
    bar [0] SET OF INTEGER OPTIONAL,
    str OCTET STRING
  }
)) or warn $asn->error;

%input = (str => 'Fred');
$result = pack "H*", "3006040446726564";
stest 11, $result, $asn->encode(%input);
btest 12, $ret = $asn->decode($result) or warn $asn->error;
rtest 13, \%input, $ret;

$result = pack "H*", "3011a009020101020105020103040446726564";
%input = (str => 'Fred', bar => [1,5,3]);
stest 14, $result, $asn->encode(%input);
btest 15, $ret = $asn->decode($result) or warn $asn->error;
rtest 16, \%input, $ret;