per support
diff --git a/tests/110-param-3-OK.asn1.-P b/tests/110-param-3-OK.asn1.-P
index 429bf58..154e8da 100644
--- a/tests/110-param-3-OK.asn1.-P
+++ b/tests/110-param-3-OK.asn1.-P
@@ -62,6 +62,7 @@
td->xer_decoder = asn_DEF_ENUMERATED.xer_decoder;
td->xer_encoder = asn_DEF_ENUMERATED.xer_encoder;
td->uper_decoder = asn_DEF_ENUMERATED.uper_decoder;
+ td->uper_encoder = asn_DEF_ENUMERATED.uper_encoder;
if(!td->per_constraints)
td->per_constraints = asn_DEF_ENUMERATED.per_constraints;
td->elements = asn_DEF_ENUMERATED.elements;
@@ -116,16 +117,25 @@
/*** <<< STAT-DEFS [Flag] >>> ***/
-static int asn_DFL_2_set_5(void **sptr) {
+static int asn_DFL_2_set_5(int set_value, void **sptr) {
INTEGER_t *st = *sptr;
if(!st) {
+ if(!set_value) return -1; /* Not a default value */
st = (*sptr = CALLOC(1, sizeof(*st)));
if(!st) return -1;
}
- /* Install default value 5 */
- return asn_long2INTEGER(st, 5);
+ if(set_value) {
+ /* Install default value 5 */
+ return asn_long2INTEGER(st, 5);
+ } else {
+ /* Test default value 5 */
+ long value;
+ if(asn_INTEGER2long(st, &value))
+ return -1;
+ return (value == 5);
+ }
}
static asn_TYPE_member_t asn_MBR_Flag_16P0_1[] = {
{ ATF_POINTER, 1, offsetof(struct Flag_16P0, field),
@@ -163,7 +173,7 @@
SEQUENCE_encode_der,
SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
- 0, /* No PER decoder, -gen-PER to enable */
+ 0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_Flag_16P0_tags_1,
sizeof(asn_DEF_Flag_16P0_tags_1)
@@ -177,16 +187,25 @@
&asn_SPC_Flag_16P0_specs_1 /* Additional specs */
};
-static int asn_DFL_7_set_5(void **sptr) {
+static int asn_DFL_7_set_5(int set_value, void **sptr) {
ENUMERATED_t *st = *sptr;
if(!st) {
+ if(!set_value) return -1; /* Not a default value */
st = (*sptr = CALLOC(1, sizeof(*st)));
if(!st) return -1;
}
- /* Install default value 5 */
- return asn_long2INTEGER(st, 5);
+ if(set_value) {
+ /* Install default value 5 */
+ return asn_long2INTEGER(st, 5);
+ } else {
+ /* Test default value 5 */
+ long value;
+ if(asn_INTEGER2long(st, &value))
+ return -1;
+ return (value == 5);
+ }
}
static asn_INTEGER_enum_map_t asn_MAP_field_value2enum_7[] = {
{ 3, 3, "red" },
@@ -219,7 +238,7 @@
field_7_encode_der,
field_7_decode_xer,
field_7_encode_xer,
- 0, /* No PER decoder, -gen-PER to enable */
+ 0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_field_tags_7,
sizeof(asn_DEF_field_tags_7)
@@ -268,7 +287,7 @@
SEQUENCE_encode_der,
SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
- 0, /* No PER decoder, -gen-PER to enable */
+ 0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_Flag_16P1_tags_6,
sizeof(asn_DEF_Flag_16P1_tags_6)
@@ -325,6 +344,7 @@
td->xer_decoder = asn_DEF_Flag_16P0.xer_decoder;
td->xer_encoder = asn_DEF_Flag_16P0.xer_encoder;
td->uper_decoder = asn_DEF_Flag_16P0.uper_decoder;
+ td->uper_encoder = asn_DEF_Flag_16P0.uper_encoder;
if(!td->per_constraints)
td->per_constraints = asn_DEF_Flag_16P0.per_constraints;
td->elements = asn_DEF_Flag_16P0.elements;
@@ -392,7 +412,7 @@
IntegerColorFlag_encode_der,
IntegerColorFlag_decode_xer,
IntegerColorFlag_encode_xer,
- 0, /* No PER decoder, -gen-PER to enable */
+ 0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_IntegerColorFlag_tags_1,
sizeof(asn_DEF_IntegerColorFlag_tags_1)
@@ -448,6 +468,7 @@
td->xer_decoder = asn_DEF_Flag_16P1.xer_decoder;
td->xer_encoder = asn_DEF_Flag_16P1.xer_encoder;
td->uper_decoder = asn_DEF_Flag_16P1.uper_decoder;
+ td->uper_encoder = asn_DEF_Flag_16P1.uper_encoder;
if(!td->per_constraints)
td->per_constraints = asn_DEF_Flag_16P1.per_constraints;
td->elements = asn_DEF_Flag_16P1.elements;
@@ -515,7 +536,7 @@
EnumeratedColorFlag_encode_der,
EnumeratedColorFlag_decode_xer,
EnumeratedColorFlag_encode_xer,
- 0, /* No PER decoder, -gen-PER to enable */
+ 0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_EnumeratedColorFlag_tags_1,
sizeof(asn_DEF_EnumeratedColorFlag_tags_1)