Blame t/11indef.t

Packit 153c79
#!/usr/bin/perl
Packit ef9df4
Packit ef9df4
#
Packit ef9df4
# Test that indefinite length encodings can be decoded
Packit ef9df4
#
Packit ef9df4
Packit ef9df4
BEGIN { require 't/funcs.pl' }
Packit ef9df4
Packit ef9df4
use Convert::ASN1;
Packit ef9df4
my @zz = ( 0, 0 );
Packit ef9df4
Packit ef9df4
print "1..7\n";
Packit ef9df4
Packit ef9df4
btest 1, $asn = Convert::ASN1->new or warn $asn->error;
Packit ef9df4
btest 2, $asn->prepare(q(
Packit ef9df4
  GroupOfThis ::= [1] OCTET STRING
Packit ef9df4
  GroupOfThat ::= [2] OCTET STRING
Packit ef9df4
  Item        ::= [3] SEQUENCE {
Packit ef9df4
     aGroup GroupOfThis OPTIONAL,
Packit ef9df4
     bGroup GroupOfThat OPTIONAL
Packit ef9df4
  }
Packit ef9df4
  Items       ::= [4] SEQUENCE OF Item
Packit ef9df4
  List        ::= [5] SEQUENCE { list Items }
Packit ef9df4
)) or warn $asn->error;
Packit ef9df4
Packit ef9df4
my $buf = pack( 'C*',
Packit ef9df4
   0xa5, 0x80,
Packit ef9df4
     0xa4, 0x80,
Packit ef9df4
       0xa3, 0x80,
Packit ef9df4
         0x81, 0x03, ( ord('A') ) x 3,
Packit ef9df4
       @zz,
Packit ef9df4
       0xa3, 0x80,
Packit ef9df4
         0x82, 0x03, ( ord('B') ) x 3,
Packit ef9df4
       @zz,
Packit ef9df4
       0xa3, 0x80,
Packit ef9df4
         0x81, 0x03, ( ord('C') ) x 3,
Packit ef9df4
         0x82, 0x03, ( ord('D') ) x 3,
Packit ef9df4
       @zz,
Packit ef9df4
     @zz,
Packit ef9df4
   @zz, 
Packit ef9df4
);
Packit ef9df4
Packit ef9df4
my $nl = $asn->find( 'List' );
Packit ef9df4
my $seq = $nl->decode( $buf ) or warn $asn->error;
Packit ef9df4
btest 3, defined( $seq ) && exists( $seq->{list} );
Packit ef9df4
stest 4, 'AAA', $seq->{list}->[0]->{aGroup};
Packit ef9df4
stest 5, 'BBB', $seq->{list}->[1]->{bGroup};
Packit ef9df4
stest 6, 'CCC', $seq->{list}->[2]->{aGroup};
Packit ef9df4
stest 7, 'DDD', $seq->{list}->[2]->{bGroup};