added tests for length limit


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@444 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/tests/check-length.c b/skeletons/tests/check-length.c
index 6176ddd..c01c5dd 100644
--- a/skeletons/tests/check-length.c
+++ b/skeletons/tests/check-length.c
@@ -53,12 +53,12 @@
 	}
 
 	buf_off = 0;
-	erval = der_encode(&asn1_DEF_OCTET_STRING,
+	erval = der_encode(&asn_DEF_OCTET_STRING,
 		os, write_to_buf, 0);
 	assert(erval.encoded == buf_off);
 	assert(buf_off > size);
 
-	rval = ber_decode(&asn1_DEF_OCTET_STRING, (void **)&nos, buf, buf_off);
+	rval = ber_decode(0, &asn_DEF_OCTET_STRING, (void **)&nos, buf, buf_off);
 	assert(rval.code == RC_OK);
 	assert(rval.consumed == buf_off);
 
@@ -76,12 +76,17 @@
 	}
 
 
-	asn1_DEF_OCTET_STRING.free_struct(&asn1_DEF_OCTET_STRING, os, 0);
-	asn1_DEF_OCTET_STRING.free_struct(&asn1_DEF_OCTET_STRING, nos, 0);
+	asn_DEF_OCTET_STRING.free_struct(&asn_DEF_OCTET_STRING, os, 0);
+	asn_DEF_OCTET_STRING.free_struct(&asn_DEF_OCTET_STRING, nos, 0);
 }
 
 int
 main() {
+	uint8_t buf1[] = { 0x85, 0x00, 0x01, 0x02, 0x03, 0x04 };
+	uint8_t buf2[] = { 0x85, 0x00, 0x7f, 0xff, 0x03, 0x04 };
+	uint8_t buf3[] = { 0x85, 0x00, 0x7f, 0xff, 0xff, 0x04 };
+	ber_tlv_len_t tlv_len;
+	ssize_t ret;
 	int i;
 
 	for(i = 0; i < 66000; i++) {
@@ -89,5 +94,17 @@
 		check(i);
 	}
 
+	ret = ber_fetch_length(0, buf1, sizeof(buf1), &tlv_len);
+	printf("ret=%d, len=%d\n", ret, tlv_len);
+	assert(ret == sizeof(buf1));
+
+	ret = ber_fetch_length(0, buf2, sizeof(buf2), &tlv_len);
+	printf("ret=%d, len=%d\n", ret, tlv_len);
+	assert(ret == sizeof(buf2));
+
+	ret = ber_fetch_length(0, buf3, sizeof(buf3), &tlv_len);
+	printf("ret=%d\n", ret);
+	assert(ret == -1);
+
 	return 0;
 }