diff --git a/tests/tests-asn1c-compiler/147-inherit-per-constraints-OK.asn1.-Pgen-OER b/tests/tests-asn1c-compiler/147-inherit-per-constraints-OK.asn1.-Pgen-OER
index c0272c4..b5a8cf5 100644
--- a/tests/tests-asn1c-compiler/147-inherit-per-constraints-OK.asn1.-Pgen-OER
+++ b/tests/tests-asn1c-compiler/147-inherit-per-constraints-OK.asn1.-Pgen-OER
@@ -134,6 +134,12 @@
  * so here we adjust the DEF accordingly.
  */
 
+/*** <<< CTDEFS [Alias] >>> ***/
+
+static asn_oer_constraints_t asn_OER_type_Alias_constr_1 GCC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+
 /*** <<< STAT-DEFS [Alias] >>> ***/
 
 static const ber_tlv_tag_t asn_DEF_Alias_tags_1[] = {
@@ -150,7 +156,7 @@
 	asn_DEF_Alias_tags_1,	/* Same as above */
 	sizeof(asn_DEF_Alias_tags_1)
 		/sizeof(asn_DEF_Alias_tags_1[0]), /* 1 */
-	0,	/* No OER visible constraints */
+	&asn_OER_type_Alias_constr_1,
 	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
diff --git a/tests/tests-asn1c-compiler/147-inherit-per-constraints-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/147-inherit-per-constraints-OK.asn1.-Pgen-PER
index 8078490..88cc9cd 100644
--- a/tests/tests-asn1c-compiler/147-inherit-per-constraints-OK.asn1.-Pgen-PER
+++ b/tests/tests-asn1c-compiler/147-inherit-per-constraints-OK.asn1.-Pgen-PER
@@ -94,6 +94,7 @@
 
 /*** <<< FUNC-DECLS [Alias] >>> ***/
 
+extern asn_per_constraints_t asn_PER_type_Alias_constr_1;
 extern asn_TYPE_descriptor_t asn_DEF_Alias;
 asn_struct_free_f Alias_free;
 asn_struct_print_f Alias_print;
@@ -137,6 +138,14 @@
  * so here we adjust the DEF accordingly.
  */
 
+/*** <<< CTDEFS [Alias] >>> ***/
+
+asn_per_constraints_t asn_PER_type_Alias_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+
 /*** <<< STAT-DEFS [Alias] >>> ***/
 
 static const ber_tlv_tag_t asn_DEF_Alias_tags_1[] = {
@@ -154,7 +163,7 @@
 	sizeof(asn_DEF_Alias_tags_1)
 		/sizeof(asn_DEF_Alias_tags_1[0]), /* 1 */
 	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	&asn_PER_type_Alias_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
diff --git a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
index 924cad8..7020fd2 100644
--- a/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
+++ b/tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER
@@ -2095,11 +2095,30 @@
 	}
 }
 
+static int asn_PER_MAP_VisibleIdentifier_1_v2c(unsigned int value) {
+	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
+		return -1;
+	return permitted_alphabet_table_1[value] - 1;
+}
+static int asn_PER_MAP_VisibleIdentifier_1_c2v(unsigned int code) {
+	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
+		return -1;
+	return permitted_alphabet_code2value_1[code];
+}
 /*
  * This type is implemented using Identifier,
  * so here we adjust the DEF accordingly.
  */
 
+/*** <<< CTDEFS [VisibleIdentifier] >>> ***/
+
+static asn_per_constraints_t asn_PER_type_VisibleIdentifier_constr_1 GCC_NOTUSED = {
+	{ APC_CONSTRAINED,	 6,  6,  36,  122 }	/* (36..122) */,
+	{ APC_CONSTRAINED,	 5,  5,  1,  32 }	/* (SIZE(1..32)) */,
+	asn_PER_MAP_VisibleIdentifier_1_v2c,	/* Value to PER code map */
+	asn_PER_MAP_VisibleIdentifier_1_c2v	/* PER code to value map */
+};
+
 /*** <<< STAT-DEFS [VisibleIdentifier] >>> ***/
 
 static const ber_tlv_tag_t asn_DEF_VisibleIdentifier_tags_1[] = {
@@ -2117,7 +2136,7 @@
 	sizeof(asn_DEF_VisibleIdentifier_tags_1)
 		/sizeof(asn_DEF_VisibleIdentifier_tags_1[0]), /* 1 */
 	0,	/* No OER visible constraints */
-	0,	/* No PER visible constraints */
+	&asn_PER_type_VisibleIdentifier_constr_1,
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
