|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T b
Length: 11320 (0x2c38)
Types: TextFile
Names: »bigpepytest.py«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z«
└─⟦de7628f85⟧
└─⟦this⟧ »isode-6.0/pepy/bigpepytest.py«
-- bigpepytest.py - test out most of the pepy constructs
-- $Header: /f/osi/pepy/RCS/bigpepytest.py,v 7.0 89/11/23 22:11:37 mrose Rel $
--
--
-- $Log: bigpepytest.py,v $
-- Revision 7.0 89/11/23 22:11:37 mrose
-- Release 6.0
--
--
-- NOTICE
--
-- Acquisition, use, and distribution of this module and related
-- materials are subject to the restrictions of a license agreement.
-- Consult the Preface in the User's Manual for the full terms of
-- this agreement.
--
--
BigTest DEFINITIONS ::=
%{
#ifndef lint
static char *rcsid = "$Header: /f/osi/pepy/RCS/bigpepytest.py,v 7.0 89/11/23 22:11:37 mrose Rel $";
#endif
#include <stdio.h>
static int count;
static char *myname = "bigpepytest";
void adios ();
/* \f
*/
/* ARGSUSED */
main (argc, argv, envp)
int argc;
char **argv,
**envp;
{
PE pe;
myname = argv[0];
if (encoder_BigTest_Test1 (&pe, 1, NULL, NULLCP, NULLCP) == NOTOK)
adios (NULLCP, "encoder fails");
if (printer_BigTest_Test1 (pe, 1, NULLIP, NULLVP, NULLCP) == NOTOK)
adios (NULLCP, "printer fails");
if (decoder_BigTest_Test1 (pe, 1, NULLIP, NULLVP, NULLCP) == NOTOK)
adios (NULLCP, "decoder fails");
exit (0); /* NOTREACHED */
}
%}
BEGIN
ENCODER encoder
Test1 %{ int fd = rnd (2); %} ::=
SEQUENCE {
boolean
BOOLEAN
[[b rnd(2)]],
taggedBoolean
[0] BOOLEAN
[[b rnd (2)]],
implicitTaggedBoolean
[PRIVATE 0] IMPLICIT BOOLEAN
[[b rnd(2)]],
integer
INTEGER
[[i rnd(10000)]],
taggedInteger
[APPLICATION 1] INTEGER
[[i rnd(10000)]],
implicitTaggedInteger
[UNIVERSAL 1] IMPLICIT INTEGER
[[i rnd(10000)]],
integerOneValue
INTEGER
[[i 1]] { nn(1) },
taggedIntegerOneValue
[PRIVATE 2] INTEGER
[[i 1]] { nn(1) },
integerManyValues
INTEGER
[[i rnd(3) + 1]]
{ nn1(1), nn2(2), nn3(3) },
implicitTaggedIntegerManyValues
[2] IMPLICIT INTEGER
[[i rnd(3) + 1]]
{ nn1(1), nn2(2), nn3(3) },
bitstring
%{
int i;
$$ = pe_alloc(PE_CLASS_UNIV, PE_FORM_PRIM, PE_PRIM_BITS);
$$ = prim2bit($$);
for(i = 0; i < 32; i++)
if( rnd(2) )
(void) bit_on($$, i);
%}
BITSTRING,
taggedBitstring [UNIVERSAL 3]
%{
int i;
$$ = pe_alloc(PE_CLASS_UNIV, PE_FORM_PRIM, PE_PRIM_BITS);
$$ = prim2bit($$);
for(i = 0; i < 32; i++)
if( rnd(2) && rnd(3) )
(void) bit_on($$, i);
%}
BITSTRING,
bitstring2
BIT STRING
[[x int2strb(0177, 8) $ 8]],
taggedBitstring2
[4] BIT STRING
[[x int2strb(0177, 8) $ 8]],
implicitTaggedBitstring2
[PRIVATE 4] IMPLICIT BIT STRING
[[x int2strb(0xffff, 16) $ 16]],
bitstringValue
BIT STRING
[[x int2strb(1, 1) $ 1]]
{ nn1(1) },
taggedBitstringValue
[APPLICATION 5] BIT STRING
[[x int2strb(1, 1) $ 1]]
{ nn1(1) },
bitstringValues
BIT STRING
[[x int2strb(03, 3) $ 3]]
{ nn1(1), nn2(2), nn3(3) },
taggedBitstringValues
[PRIVATE 6] BIT STRING
[[x int2strb(03, 3) $ 3]]
{ nn1(1), nn2(2), nn3(3) },
implicitTaggedBitstringValues
[APPLICATION 6] IMPLICIT BIT STRING
[[x int2strb(03, 3) $ 3]]
{ nn1(1), nn2(2), nn3(3) },
octetstring
OCTET STRING
[[s "hello world"]],
taggedOctetstring
[UNIVERSAL 7] OCTET STRING
[[s "hello world"]],
octetstring2
OCTETSTRING
[[s "goodbye world"]],
implicitTaggedOctetstring2
[PRIVATE 7] IMPLICIT OCTETSTRING
[[o "goodbye world" $ 8]],
null
NULL,
taggedNull
[8] NULL,
implicitTaggedNull
[PRIVATE 8] IMPLICIT NULL,
sequence
SEQUENCE,
taggedSequence
[APPLICATION 9] SEQUENCE,
implicitTaggedSequence
[PRIVATE 9] SEQUENCE,
sequenceOf
SEQUENCE OF
<<count = rnd(10); count >= 0; count-->>
SequenceA,
taggedSequenceOf
[PRIVATE 10] SEQUENCE OF
<<count = rnd(10); count >= 0; count-->>
SequenceA,
sequenceOf2
SEQUENCEOF
<<count = rnd(3); count >= 0; count-->>
SequenceB,
implicitTaggedSequenceOf2
[10] IMPLICIT SEQUENCEOF
<<count = rnd(3); count >= 0; count-->>
SequenceA,
set
SET,
taggedSet
[UNIVERSAL 11] SET,
implicitTaggedSet
[PRIVATE 11] IMPLICIT SET,
setOf
SET OF
<<count = rnd(10); count >= 0; count -->>
SetA,
taggedSetOf
[12] SET OF
<<count = rnd(10); count >= 0; count -->>
SetA,
setOf2
SETOF
<<count = rnd(4); count >= 0; count -->>
SetB,
implicitTaggedSetOf2
[PRIVATE 12] IMPLICIT SETOF
<<count = rnd(4); count >= 0; count -->>
SetA,
setValues
SET { SequenceA, SequenceB, SetA, SetB },
taggedSetValues
[APPLICATION 13] SET { SequenceA, SequenceB, SetA, SetB },
implicitTaggedSetValues
[13] IMPLICIT SET { SequenceA, SequenceB, SetA, SetB },
choice
CHOICE << rnd(2) + 1 >> {
[1]
SequenceA,
[2]
SequenceB,
[3]
SetA,
[4]
SetB
},
taggedChoice
[PRIVATE 14] CHOICE << rnd(2) + 1 >> {
[1]
SequenceA,
[2]
SequenceB,
[3]
SetA,
[4]
SetB
},
bounded
objectname < ObjectA,
taggedBounded
[UNIVERSAL 15] objectname < ObjectA,
any
ANY
[[a pe_alloc (PE_CLASS_UNIV, PE_FORM_PRIM, PE_PRIM_NULL)]],
taggedAny [PRIVATE 15]
ANY
[[a pe_alloc (PE_CLASS_UNIV, PE_FORM_PRIM, PE_PRIM_NULL)]],
oid
%{
OID oid;
register int i;
oid = (OID) calloc (1, sizeof(OIDentifier));
oid->oid_nelem = rnd(6)+2;
oid->oid_elements = (unsigned int *)
calloc((unsigned) oid->oid_nelem,
sizeof(unsigned int));
for(i = 0; i < oid->oid_nelem; i++)
oid->oid_elements[i] = rnd(10);
$$ = oid;
%}
OBJECT IDENTIFIER,
taggedOid [16]
%{
OID oid;
register int i;
oid = (OID) calloc (1, sizeof(OIDentifier));
oid->oid_nelem = rnd(6)+2;
oid->oid_elements = (unsigned int *)
calloc((unsigned) oid->oid_nelem,
sizeof(unsigned int));
for(i = 0; i < oid->oid_nelem; i++)
oid->oid_elements[i] = rnd(10);
$$ = oid;
%}
OBJECT IDENTIFIER,
oid2
OBJECT IDENTIFIER
[[O str2oid ("1.2.3.4.5.6.7.8.9")]],
implicitTaggedOid2
[APPLICATION 17] IMPLICIT OBJECT IDENTIFIER
[[O str2oid ("1.2.3.4.5.6.7.8.9")]],
funnyDefault
[18] IMPLICIT INTEGER
[[i fd]]
DEFAULT 0 << fd != 0 >>
}
SequenceA ::=
SEQUENCE {
seqAinteger
INTEGER
[[i rnd(50)]],
seqAbool
BOOLEAN
[[b rnd(2)]]
}
SequenceB ::=
[PRIVATE 100] SEQUENCE {
seqBinteger
INTEGER
[[i rnd(75)]]
}
SetA ::=
SET {
setAinteger
INTEGER
[[i rnd(20000)]],
setAbool
BOOLEAN
[[b rnd(2)]]
}
SetB ::=
[PRIVATE 101] SET {
setBinteger
INTEGER
[[i rnd(3000)]]
}
ObjectA ::=
BOOLEAN
[[b rnd(2)]]
SECTIONS none decoder printer
Test1 ::=
SEQUENCE {
boolean
BOOLEAN,
taggedBoolean
[0] BOOLEAN,
implicitTaggedBoolean
[PRIVATE 0] IMPLICIT BOOLEAN,
integer
INTEGER,
taggedInteger
[APPLICATION 1] INTEGER,
implicitTaggedInteger
[UNIVERSAL 1] IMPLICIT INTEGER,
integerOneValue
INTEGER { nn(1) },
taggedIntegerOneValue
[PRIVATE 2] INTEGER { nn(1) },
integerManyValues
INTEGER { nn1(1), nn2(2), nn3(3) },
implicitTaggedIntegerManyValues
[2] IMPLICIT INTEGER { nn1(1), nn2(2), nn3(3) },
bitstring
BITSTRING,
taggedBitString
[UNIVERSAL 3] BITSTRING,
bitstring2
BIT STRING,
taggedBitstring2
[4] BIT STRING,
implictTaggedBitstring2
[PRIVATE 4] IMPLICIT BIT STRING,
bitstringValue
BIT STRING { nn1(1) },
taggedBitstringValue
[APPLICATION 5] BIT STRING { nn1(1) },
bitstringValues
BIT STRING { nn1(1), nn2(2), nn3(3) },
taggedBitstringValues
[PRIVATE 6] BIT STRING { nn1(1), nn2(2), nn3(3) },
implicitTaggedBitstringValues
[APPLICATION 6] IMPLICIT BIT STRING
{ nn1(1), nn2(2), nn3(3) },
octetstring
OCTET STRING,
taggedOctetstring
[UNIVERSAL 7] OCTET STRING,
octetstring2
OCTETSTRING,
implicitTaggedOctetstring2
[PRIVATE 7] IMPLICIT OCTETSTRING,
null
NULL,
taggedNull
[8] NULL,
implicitTaggedNull
[PRIVATE 8] IMPLICIT NULL,
sequence
SEQUENCE,
taggedSequence
[APPLICATION 9] SEQUENCE,
implicitTaggedSequence
[PRIVATE 9] IMPLICIT SEQUENCE,
sequenceOf
SEQUENCE OF
SequenceA,
taggedSequenceOf
[PRIVATE 10] SEQUENCE OF
SequenceA,
sequenceOf2
SEQUENCEOF
SequenceB,
implicitTaggedSequenceOf2
[10] IMPLICIT SEQUENCEOF
SequenceA,
set
SET,
taggedSet
[UNIVERSAL 11] SET,
implicitTaggedSet
[PRIVATE 11] IMPLICIT SET,
setOf
SET OF
SetA,
taggedSetOf
[12] SET OF
SetA,
setOf2
SETOF
SetB,
implicitTaggedSetOf2
[PRIVATE 12] IMPLICIT SETOF
SetA,
setValues
SET { SequenceA, SequenceB, SetA, SetB },
taggedSetValues
[APPLICATION 13] SET { SequenceA, SequenceB, SetA, SetB },
implicitTaggedSetValues
[13] IMPLICIT SET { SequenceA, SequenceB, SetA, SetB },
choice
CHOICE {
[1]
SequenceA,
[2]
SequenceB,
[3]
SetA,
[4]
SetB
},
taggedChoice
[PRIVATE 14] CHOICE {
[1]
SequenceA,
[2]
SequenceB,
[3]
SetA,
[4]
SetB
},
bounded
objectname < ObjectA,
taggedBounded
[UNIVERSAL 15] objectname < ObjectA,
any
ANY,
taggedAny
[PRIVATE 15] ANY,
oid
OBJECT IDENTIFIER,
taggedOid
[16] OBJECT IDENTIFIER,
oid2
OBJECT IDENTIFIER,
implicitTaggedOid2
[APPLICATION 17] IMPLICIT OBJECT IDENTIFIER,
funnyDefault
[18] IMPLICIT INTEGER
%{ if ($$ == 0) advise (NULLCP, "funny default!"); %}
DEFAULT 0
}
SequenceA ::=
SEQUENCE {
seqAinteger
INTEGER,
seqAbool
BOOLEAN
}
SequenceB ::=
[PRIVATE 100] SEQUENCE {
seqBinteger
INTEGER
}
SetA ::=
SET {
setAinteger
INTEGER,
setAbool
BOOLEAN
}
SetB ::=
[PRIVATE 101] SET {
setBinteger
INTEGER
}
ObjectA ::=
BOOLEAN
END
%{
/* \f
MISC */
#ifdef BSD42
#define SRAND(s) srandom ((int) (s))
#define RAND random
long random ();
#else
#define SRAND srand
#define RAND rand
int rand ();
#endif
long time ();
static int rnd(n)
int n;
{
static int init = 0;
if (!init) {
SRAND (time ((long *) 0));
init = 1;
}
return (RAND () % n);
}
/* \f
ERRORS */
#include <varargs.h>
#ifndef lint
void _advise ();
static void adios (va_alist)
va_dcl
{
va_list ap;
va_start (ap);
_advise (ap);
va_end (ap);
_exit (1);
}
#else
/* VARARGS */
static void adios (what, fmt)
char *what,
*fmt;
{
adios (what, fmt);
}
#endif
#ifndef lint
static void advise (va_alist)
va_dcl
{
va_list ap;
va_start (ap);
_advise (ap);
va_end (ap);
}
static void _advise (ap)
va_list ap;
{
char buffer[BUFSIZ];
asprintf (buffer, ap);
(void) fflush (stdout);
fprintf (stderr, "%s: ", myname);
(void) fputs (buffer, stderr);
(void) fputc ('\n', stderr);
(void) fflush (stderr);
}
#else
/* VARARGS */
static void advise (what, fmt)
char *what,
*fmt;
{
advise (what, fmt);
}
#endif
%}