XMLValueList handling tests

git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@692 59561ff5-6e30-0410-9f3c-9617f08c8826
This commit is contained in:
vlm 2005-02-24 22:38:43 +00:00
parent aa930cb1c0
commit 6d5cb6bdbc
5 changed files with 255 additions and 13 deletions

View File

@ -0,0 +1,7 @@
<PDU>
<setOfNULL>
<NULL/>
<NULL/>
<NULL/>
</setOfNULL>
</PDU>

View File

@ -0,0 +1,5 @@
<PDU>
<setOfNULL>
<zuka/>
</setOfNULL>
</PDU>

View File

@ -0,0 +1,5 @@
<PDU>
<seqOfZuka>
<zuka/>
</seqOfZuka>
</PDU>

View File

@ -22,6 +22,9 @@ BEGIN
sequenceOf SequenceOf,
extensibleSet ExtensibleSet,
extensibleSequence ExtensibleSequence,
setOfNULL SetOfNULL,
setOfEnums SetOfEnums,
seqOfZuka SeqOfZuka,
...
}
@ -49,6 +52,9 @@ BEGIN
}
SetOf ::= SET OF REAL
SetOfNULL ::= SET OF NULL
SetOfEnums ::= SET OF ENUMERATED { one, two }
SequenceOf ::= SEQUENCE OF id INTEGER
SeqOfZuka ::= SEQUENCE OF zuka NULL
END

View File

@ -7,6 +7,9 @@
#include <SequenceOf.h>
#include <ExtensibleSet.h>
#include <ExtensibleSequence.h>
#include <SetOfNULL.h>
#include <SetOfEnums.h>
#include <SeqOfZuka.h>
#include <constr_CHOICE.h>
/*** <<< DEPS [PDU] >>> ***/
@ -19,6 +22,9 @@ typedef enum PDU_PR {
PDU_PR_sequenceOf,
PDU_PR_extensibleSet,
PDU_PR_extensibleSequence,
PDU_PR_setOfNULL,
PDU_PR_setOfEnums,
PDU_PR_seqOfZuka,
/* Extensions may appear below */
} PDU_PR;
extern asn_TYPE_descriptor_t asn_DEF_PDU;
@ -35,6 +41,9 @@ typedef struct PDU {
SequenceOf_t sequenceOf;
ExtensibleSet_t extensibleSet;
ExtensibleSequence_t extensibleSequence;
SetOfNULL_t setOfNULL;
SetOfEnums_t setOfEnums;
SeqOfZuka_t seqOfZuka;
/*
* This type is extensible,
* possible extensions are below.
@ -90,6 +99,27 @@ static asn_TYPE_member_t asn_MBR_PDU[] = {
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "extensibleSequence"
},
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.setOfNULL),
.tag = (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = (void *)&asn_DEF_SetOfNULL,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "setOfNULL"
},
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.setOfEnums),
.tag = (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = (void *)&asn_DEF_SetOfEnums,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "setOfEnums"
},
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.seqOfZuka),
.tag = (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = (void *)&asn_DEF_SeqOfZuka,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "seqOfZuka"
},
};
static asn_TYPE_tag2member_t asn_DEF_PDU_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequence at 19 */
@ -98,6 +128,9 @@ static asn_TYPE_tag2member_t asn_DEF_PDU_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sequenceOf at 22 */
{ (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* extensibleSet at 23 */
{ (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* extensibleSequence at 24 */
{ (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* setOfNULL at 25 */
{ (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* setOfEnums at 26 */
{ (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* seqOfZuka at 27 */
};
static asn_CHOICE_specifics_t asn_DEF_PDU_specs = {
sizeof(struct PDU),
@ -105,7 +138,7 @@ static asn_CHOICE_specifics_t asn_DEF_PDU_specs = {
offsetof(struct PDU, present),
sizeof(((struct PDU *)0)->present),
asn_DEF_PDU_tag2el,
6, /* Count of tags in the map */
9, /* Count of tags in the map */
1 /* Whether extensible */
};
asn_TYPE_descriptor_t asn_DEF_PDU = {
@ -124,7 +157,7 @@ asn_TYPE_descriptor_t asn_DEF_PDU = {
0, /* No tags (pointer) */
0, /* No tags (count) */
asn_MBR_PDU,
6, /* Elements count */
9, /* Elements count */
&asn_DEF_PDU_specs /* Additional specs */
};
@ -192,10 +225,10 @@ static ber_tlv_tag_t asn_DEF_Sequence_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_TYPE_tag2member_t asn_DEF_Sequence_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* integer at 29 */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sequence at 30 */
{ (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bits at 31 */
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* string at 32 */
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* integer at 32 */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sequence at 33 */
{ (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bits at 34 */
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* string at 35 */
};
static asn_SEQUENCE_specifics_t asn_DEF_Sequence_specs = {
sizeof(struct Sequence),
@ -283,8 +316,8 @@ static ber_tlv_tag_t asn_DEF_Set_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn_TYPE_tag2member_t asn_DEF_Set_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roid at 36 */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* opaque at 37 */
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roid at 39 */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* opaque at 40 */
};
static uint8_t asn_DEF_Set_mmap[(2 + (8 * sizeof(unsigned int)) - 1) / 8] = {
(1 << 7) | (0 << 6)
@ -296,7 +329,7 @@ static asn_SET_specifics_t asn_DEF_Set_specs = {
asn_DEF_Set_tag2el,
2, /* Count of tags in the map */
asn_DEF_Set_tag2el, /* Same as above */
2, /* Count of tags in the CANONICAL-XER map */
2, /* Count of tags in the CXER map */
0, /* Whether extensible */
(unsigned int *)asn_DEF_Set_mmap /* Mandatory elements map */
};
@ -372,7 +405,7 @@ static ber_tlv_tag_t asn_DEF_ExtensibleSet_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn_TYPE_tag2member_t asn_DEF_ExtensibleSet_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 41 */
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 44 */
};
static uint8_t asn_DEF_ExtensibleSet_mmap[(1 + (8 * sizeof(unsigned int)) - 1) / 8] = {
(0 << 7)
@ -384,7 +417,7 @@ static asn_SET_specifics_t asn_DEF_ExtensibleSet_specs = {
asn_DEF_ExtensibleSet_tag2el,
1, /* Count of tags in the map */
asn_DEF_ExtensibleSet_tag2el, /* Same as above */
1, /* Count of tags in the CANONICAL-XER map */
1, /* Count of tags in the CXER map */
1, /* Whether extensible */
(unsigned int *)asn_DEF_ExtensibleSet_mmap /* Mandatory elements map */
};
@ -458,8 +491,8 @@ static ber_tlv_tag_t asn_DEF_ExtensibleSequence_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_TYPE_tag2member_t asn_DEF_ExtensibleSequence_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 46 */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* integer at 48 */
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 49 */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* integer at 51 */
};
static asn_SEQUENCE_specifics_t asn_DEF_ExtensibleSequence_specs = {
sizeof(struct ExtensibleSequence),
@ -554,6 +587,130 @@ asn_TYPE_descriptor_t asn_DEF_SetOf = {
};
/*** <<< INCLUDES [SetOfNULL] >>> ***/
#include <NULL.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<< DEPS [SetOfNULL] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SetOfNULL;
/*** <<< TYPE-DECLS [SetOfNULL] >>> ***/
typedef struct SetOfNULL {
A_SET_OF(NULL_t) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} SetOfNULL_t;
/*** <<< STAT-DEFS [SetOfNULL] >>> ***/
static asn_TYPE_member_t asn_MBR_SetOfNULL[] = {
{ ATF_NOFLAGS, 0, 0,
.tag = (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_NULL,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = ""
},
};
static ber_tlv_tag_t asn_DEF_SetOfNULL_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn_SET_OF_specifics_t asn_DEF_SetOfNULL_specs = {
sizeof(struct SetOfNULL),
offsetof(struct SetOfNULL, _asn_ctx),
1, /* XER encoding is XMLValueList */
};
asn_TYPE_descriptor_t asn_DEF_SetOfNULL = {
"SetOfNULL",
"SetOfNULL",
SET_OF_free,
SET_OF_print,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
SET_OF_decode_xer,
SET_OF_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_SetOfNULL_tags,
sizeof(asn_DEF_SetOfNULL_tags)
/sizeof(asn_DEF_SetOfNULL_tags[0]), /* 1 */
asn_DEF_SetOfNULL_tags, /* Same as above */
sizeof(asn_DEF_SetOfNULL_tags)
/sizeof(asn_DEF_SetOfNULL_tags[0]), /* 1 */
asn_MBR_SetOfNULL,
1, /* Single element */
&asn_DEF_SetOfNULL_specs /* Additional specs */
};
/*** <<< INCLUDES [SetOfEnums] >>> ***/
#include <ENUMERATED.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<< DEPS [SetOfEnums] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SetOfEnums;
/*** <<< TYPE-DECLS [SetOfEnums] >>> ***/
typedef struct SetOfEnums {
A_SET_OF(ENUMERATED_t) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} SetOfEnums_t;
/*** <<< STAT-DEFS [SetOfEnums] >>> ***/
static asn_TYPE_member_t asn_MBR_SetOfEnums[] = {
{ ATF_NOFLAGS, 0, 0,
.tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_ENUMERATED,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = ""
},
};
static ber_tlv_tag_t asn_DEF_SetOfEnums_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn_SET_OF_specifics_t asn_DEF_SetOfEnums_specs = {
sizeof(struct SetOfEnums),
offsetof(struct SetOfEnums, _asn_ctx),
0, /* XER encoding is XMLDelimitedItemList */
};
asn_TYPE_descriptor_t asn_DEF_SetOfEnums = {
"SetOfEnums",
"SetOfEnums",
SET_OF_free,
SET_OF_print,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
SET_OF_decode_xer,
SET_OF_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_SetOfEnums_tags,
sizeof(asn_DEF_SetOfEnums_tags)
/sizeof(asn_DEF_SetOfEnums_tags[0]), /* 1 */
asn_DEF_SetOfEnums_tags, /* Same as above */
sizeof(asn_DEF_SetOfEnums_tags)
/sizeof(asn_DEF_SetOfEnums_tags[0]), /* 1 */
asn_MBR_SetOfEnums,
1, /* Single element */
&asn_DEF_SetOfEnums_specs /* Additional specs */
};
/*** <<< INCLUDES [SequenceOf] >>> ***/
#include <INTEGER.h>
@ -615,3 +772,65 @@ asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
&asn_DEF_SequenceOf_specs /* Additional specs */
};
/*** <<< INCLUDES [SeqOfZuka] >>> ***/
#include <NULL.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
/*** <<< DEPS [SeqOfZuka] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SeqOfZuka;
/*** <<< TYPE-DECLS [SeqOfZuka] >>> ***/
typedef struct SeqOfZuka {
A_SEQUENCE_OF(NULL_t) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} SeqOfZuka_t;
/*** <<< STAT-DEFS [SeqOfZuka] >>> ***/
static asn_TYPE_member_t asn_MBR_SeqOfZuka[] = {
{ ATF_NOFLAGS, 0, 0,
.tag = (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_NULL,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "zuka"
},
};
static ber_tlv_tag_t asn_DEF_SeqOfZuka_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_SET_OF_specifics_t asn_DEF_SeqOfZuka_specs = {
sizeof(struct SeqOfZuka),
offsetof(struct SeqOfZuka, _asn_ctx),
1, /* XER encoding is XMLValueList */
};
asn_TYPE_descriptor_t asn_DEF_SeqOfZuka = {
"SeqOfZuka",
"SeqOfZuka",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
SEQUENCE_OF_decode_xer,
SEQUENCE_OF_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_SeqOfZuka_tags,
sizeof(asn_DEF_SeqOfZuka_tags)
/sizeof(asn_DEF_SeqOfZuka_tags[0]), /* 1 */
asn_DEF_SeqOfZuka_tags, /* Same as above */
sizeof(asn_DEF_SeqOfZuka_tags)
/sizeof(asn_DEF_SeqOfZuka_tags[0]), /* 1 */
asn_MBR_SeqOfZuka,
1, /* Single element */
&asn_DEF_SeqOfZuka_specs /* Additional specs */
};