Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
asn1c
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
oai
asn1c
Commits
03ba3e9b
Commit
03ba3e9b
authored
20 years ago
by
Lev Walkin
Browse files
Options
Downloads
Patches
Plain Diff
set of/sequence of compile testing
parent
de6fbe04
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
tests/31-set-of-OK.asn1
+13
-0
13 additions, 0 deletions
tests/31-set-of-OK.asn1
tests/31-set-of-OK.asn1.-EF
+23
-0
23 additions, 0 deletions
tests/31-set-of-OK.asn1.-EF
tests/31-set-of-OK.asn1.-P
+349
-0
349 additions, 0 deletions
tests/31-set-of-OK.asn1.-P
with
385 additions
and
0 deletions
tests/31-set-of-OK.asn1
+
13
−
0
View file @
03ba3e9b
...
...
@@ -18,4 +18,17 @@ BEGIN
width INTEGER
}
-- The following clause tests OPTIONAL.
Stuff ::= SET {
trees [0] SET OF Forest OPTIONAL,
anything [1] SET OF
SEQUENCE {
cup-of-coffee BIT STRING,
...
} OPTIONAL
-- The above OPTIONAL applies to the "anything"
-- member of the outer CHOICE,
-- not to the SET OF's embedded SEQUENCE!
}
END
This diff is collapsed.
Click to expand it.
tests/31-set-of-OK.asn1.-EF
0 → 100644
+
23
−
0
View file @
03ba3e9b
ModuleTestSetOfSimple {iso(-1) org(3) dod(6) internet(1) private(4)
enterprise(1) spelio(9363) software(1) asn1c(5) test(1)
31 }
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
Forest ::= SET OF Tree
Tree ::= SEQUENCE {
height INTEGER,
width INTEGER
}
Stuff ::= SET {
trees [0] IMPLICIT SET OF Forest OPTIONAL,
anything [1] IMPLICIT SET OF SEQUENCE {
cup-of-coffee BIT STRING,
...
} OPTIONAL
}
END
This diff is collapsed.
Click to expand it.
tests/31-set-of-OK.asn1.-P
0 → 100644
+
349
−
0
View file @
03ba3e9b
/*** <<< INCLUDES [Forest] >>> ***/
#include <Tree.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<< DEPS [Forest] >>> ***/
extern asn1_TYPE_descriptor_t asn1_DEF_Forest;
/*** <<< TYPE-DECLS [Forest] >>> ***/
typedef struct Forest {
A_SET_OF(struct Tree) list;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} Forest_t;
/*** <<< STAT-DEFS [Forest] >>> ***/
static asn1_TYPE_member_t asn1_MBR_Forest[] = {
{ 0, 0,
.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
.tag_mode = 0,
.type = (void *)&asn1_DEF_Tree,
.memb_constraints = 0, /* Defer to actual type */
.name = ""
},
};
static ber_tlv_tag_t asn1_DEF_Forest_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_Forest_specs = {
sizeof(struct Forest),
offsetof(struct Forest, _ber_dec_ctx),
};
asn1_TYPE_descriptor_t asn1_DEF_Forest = {
"Forest",
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
SET_OF_print,
SET_OF_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_Forest_tags,
sizeof(asn1_DEF_Forest_tags)
/sizeof(asn1_DEF_Forest_tags[0]), /* 1 */
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
asn1_MBR_Forest,
1, /* Single element */
&asn1_DEF_Forest_specs /* Additional specs */
};
/*** <<< INCLUDES [Tree] >>> ***/
#include <INTEGER.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [Tree] >>> ***/
extern asn1_TYPE_descriptor_t asn1_DEF_Tree;
/*** <<< TYPE-DECLS [Tree] >>> ***/
typedef struct Tree {
INTEGER_t height;
INTEGER_t width;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} Tree_t;
/*** <<< STAT-DEFS [Tree] >>> ***/
static asn1_TYPE_member_t asn1_MBR_Tree[] = {
{ 0, offsetof(struct Tree, height),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
.tag_mode = 0,
.type = (void *)&asn1_DEF_INTEGER,
.memb_constraints = 0, /* Defer to actual type */
.name = "height"
},
{ 0, offsetof(struct Tree, width),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
.tag_mode = 0,
.type = (void *)&asn1_DEF_INTEGER,
.memb_constraints = 0, /* Defer to actual type */
.name = "width"
},
};
static ber_tlv_tag_t asn1_DEF_Tree_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_Tree_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* height at 17 */
{ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* width at 19 */
};
static asn1_SEQUENCE_specifics_t asn1_DEF_Tree_specs = {
sizeof(struct Tree),
offsetof(struct Tree, _ber_dec_ctx),
asn1_DEF_Tree_tag2el,
2, /* Count of tags in the map */
-1, /* Start extensions */
-1 /* Stop extensions */
};
asn1_TYPE_descriptor_t asn1_DEF_Tree = {
"Tree",
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_print,
SEQUENCE_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_Tree_tags,
sizeof(asn1_DEF_Tree_tags)
/sizeof(asn1_DEF_Tree_tags[0]), /* 1 */
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
asn1_MBR_Tree,
2, /* Elements count */
&asn1_DEF_Tree_specs /* Additional specs */
};
/*** <<< INCLUDES [Stuff] >>> ***/
#include <Forest.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <BIT_STRING.h>
#include <constr_SEQUENCE.h>
#include <constr_SET.h>
/*** <<< DEPS [Stuff] >>> ***/
/*
* Method of determining the components presence
*/
typedef enum Stuff_PR {
Stuff_PR_trees, /* Member trees is present */
Stuff_PR_anything, /* Member anything is present */
} Stuff_PR;
extern asn1_TYPE_descriptor_t asn1_DEF_Stuff;
/*** <<< TYPE-DECLS [Stuff] >>> ***/
typedef struct Stuff {
struct trees {
A_SET_OF(struct Forest) list;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} *trees;
struct anything {
A_SET_OF(struct anything_member {
BIT_STRING_t cup_of_coffee;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} ) list;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} *anything;
/* Presence bitmask: ASN_SET_ISPRESENT(pStuff, Stuff_PR_x) */
unsigned int _presence_map
[((2+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} Stuff_t;
/*** <<< STAT-DEFS [Stuff] >>> ***/
static asn1_TYPE_member_t asn1_MBR_trees[] = {
{ 0, 0,
.tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
.tag_mode = 0,
.type = (void *)&asn1_DEF_Forest,
.memb_constraints = 0, /* Defer to actual type */
.name = ""
},
};
static ber_tlv_tag_t asn1_DEF_trees_tags[] = {
(ASN_TAG_CLASS_CONTEXT | (0 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_trees_specs = {
sizeof(struct trees),
offsetof(struct trees, _ber_dec_ctx),
};
asn1_TYPE_descriptor_t asn1_DEF_trees = {
"trees",
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
SET_OF_print,
SET_OF_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_trees_tags,
sizeof(asn1_DEF_trees_tags)
/sizeof(asn1_DEF_trees_tags[0]), /* 1 */
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
asn1_MBR_trees,
1, /* Single element */
&asn1_DEF_trees_specs /* Additional specs */
};
static asn1_TYPE_member_t asn1_MBR_anything_member[] = {
{ 0, offsetof(struct anything_member, cup_of_coffee),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)),
.tag_mode = 0,
.type = (void *)&asn1_DEF_BIT_STRING,
.memb_constraints = 0, /* Defer to actual type */
.name = "cup-of-coffee"
},
};
static ber_tlv_tag_t asn1_DEF_anything_member_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_anything_member_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 }, /* cup-of-coffee at 26 */
};
static asn1_SEQUENCE_specifics_t asn1_DEF_anything_member_specs = {
sizeof(struct anything_member),
offsetof(struct anything_member, _ber_dec_ctx),
asn1_DEF_anything_member_tag2el,
1, /* Count of tags in the map */
0, /* Start extensions */
2 /* Stop extensions */
};
asn1_TYPE_descriptor_t asn1_DEF_anything_member = {
"",
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_print,
SEQUENCE_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_anything_member_tags,
sizeof(asn1_DEF_anything_member_tags)
/sizeof(asn1_DEF_anything_member_tags[0]), /* 1 */
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
asn1_MBR_anything_member,
1, /* Elements count */
&asn1_DEF_anything_member_specs /* Additional specs */
};
static asn1_TYPE_member_t asn1_MBR_anything[] = {
{ 0, 0,
.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
.tag_mode = 0,
.type = (void *)&asn1_DEF_anything_member,
.memb_constraints = 0, /* Defer to actual type */
.name = ""
},
};
static ber_tlv_tag_t asn1_DEF_anything_tags[] = {
(ASN_TAG_CLASS_CONTEXT | (1 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_anything_specs = {
sizeof(struct anything),
offsetof(struct anything, _ber_dec_ctx),
};
asn1_TYPE_descriptor_t asn1_DEF_anything = {
"anything",
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
SET_OF_print,
SET_OF_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_anything_tags,
sizeof(asn1_DEF_anything_tags)
/sizeof(asn1_DEF_anything_tags[0]), /* 1 */
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
asn1_MBR_anything,
1, /* Single element */
&asn1_DEF_anything_specs /* Additional specs */
};
static asn1_TYPE_member_t asn1_MBR_Stuff[] = {
{ 2, offsetof(struct Stuff, trees),
.tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = (void *)&asn1_DEF_trees,
.memb_constraints = 0, /* Defer to actual type */
.name = "trees"
},
{ 1, offsetof(struct Stuff, anything),
.tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = (void *)&asn1_DEF_anything,
.memb_constraints = 0, /* Defer to actual type */
.name = "anything"
},
};
static ber_tlv_tag_t asn1_DEF_Stuff_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_Stuff_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trees at 23 */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* anything at 28 */
};
static uint8_t asn1_DEF_Stuff_mmap[(2 + (8 * sizeof(unsigned int)) - 1) / 8] = {
(0 << 7) | (0 << 6)
};
static asn1_SET_specifics_t asn1_DEF_Stuff_specs = {
sizeof(struct Stuff),
offsetof(struct Stuff, _ber_dec_ctx),
offsetof(struct Stuff, _presence_map),
asn1_DEF_Stuff_tag2el,
2, /* Count of tags in the map */
0, /* Whether extensible */
(unsigned int *)asn1_DEF_Stuff_mmap /* Mandatory elements map */
};
asn1_TYPE_descriptor_t asn1_DEF_Stuff = {
"Stuff",
SET_constraint,
SET_decode_ber,
SET_encode_der,
SET_print,
SET_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_Stuff_tags,
sizeof(asn1_DEF_Stuff_tags)
/sizeof(asn1_DEF_Stuff_tags[0]), /* 1 */
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
asn1_MBR_Stuff,
2, /* Elements count */
&asn1_DEF_Stuff_specs /* Additional specs */
};
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment