Blame t/11indef.t

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