1#!/usr/local/bin/perl 2 3# 4# Test that the primitive operators are working 5# 6 7use Convert::ASN1; 8BEGIN { require './t/funcs.pl' } 9 10print "1..16\n"; # This testcase needs more tests 11 12btest 1, $asn = Convert::ASN1->new or warn $asn->error; 13btest 2, $asn->prepare(q( 14 integer INTEGER OPTIONAL, 15 str STRING 16)) or warn $asn->error; 17 18$result = pack("C*", 0x4, 0x3, ord('a'), ord('b'), ord('c')); 19%input = (str => "abc"); 20stest 3, $result, $asn->encode(%input) or warn $asn->error; 21btest 4, $ret = $asn->decode($result) or warn $asn->error; 22rtest 5, \%input, $ret; 23 24$result = pack("C*", 0x2, 0x1, 0x9, 0x4, 0x3, ord('a'), ord('b'), ord('c')); 25%input = (integer => 9, str => "abc"); 26stest 6, $result, $asn->encode(%input) or warn $asn->error; 27btest 7, $ret = $asn->decode($result) or warn $asn->error; 28rtest 8, \%input, $ret; 29 30btest 9, not( $asn->encode(integer => 9)); 31 32btest 10, $asn->prepare( q( 33 SEQUENCE { 34 bar [0] SET OF INTEGER OPTIONAL, 35 str OCTET STRING 36 } 37)) or warn $asn->error; 38 39%input = (str => 'Fred'); 40$result = pack "H*", "3006040446726564"; 41stest 11, $result, $asn->encode(%input); 42btest 12, $ret = $asn->decode($result) or warn $asn->error; 43rtest 13, \%input, $ret; 44 45$result = pack "H*", "3011a009020101020105020103040446726564"; 46%input = (str => 'Fred', bar => [1,5,3]); 47stest 14, $result, $asn->encode(%input); 48btest 15, $ret = $asn->decode($result) or warn $asn->error; 49rtest 16, \%input, $ret; 50