Improve error handling for not well-formed CBOR
diff --git a/test/qcbor_encode_tests.c b/test/qcbor_encode_tests.c
index ea6363b..7866b37 100644
--- a/test/qcbor_encode_tests.c
+++ b/test/qcbor_encode_tests.c
@@ -1852,7 +1852,7 @@
}
nReturn = QCBORDecode_GetNext(&DC, &Item);
- if(nReturn == QCBOR_ERR_HIT_END) {
+ if(nReturn == QCBOR_ERR_HIT_END || nReturn == QCBOR_ERR_NO_MORE_ITEMS) {
return 0;
}
if(Item.uDataType != QCBOR_TYPE_BYTE_STRING) {
@@ -2314,5 +2314,20 @@
return -11;
}
+ // ------ QCBOR_ERR_UNSUPPORTED --------
+ QCBOREncode_Init(&EC, Large);
+ QCBOREncode_OpenArray(&EC);
+ QCBOREncode_AddSimple(&EC, 24); // CBOR_SIMPLEV_RESERVED_START
+ if(QCBOREncode_FinishGetSize(&EC, &xx) != QCBOR_ERR_UNSUPPORTED) {
+ return -12;
+ }
+
+ QCBOREncode_Init(&EC, Large);
+ QCBOREncode_OpenArray(&EC);
+ QCBOREncode_AddSimple(&EC, 31); // CBOR_SIMPLEV_RESERVED_END
+ if(QCBOREncode_FinishGetSize(&EC, &xx) != QCBOR_ERR_UNSUPPORTED) {
+ return -13;
+ }
+
return 0;
}