New tag encoder basically working
diff --git a/test/qcbor_encode_tests.c b/test/qcbor_encode_tests.c
index f28671d..77a8a6e 100644
--- a/test/qcbor_encode_tests.c
+++ b/test/qcbor_encode_tests.c
@@ -64,13 +64,13 @@
// TODO: test QCBOR_MAX_ITEMS_IN_ARRAY (this is very large...)
-#ifdef PRINT_FUNCTIONS_FOR_DEBUGGINGXX
+#if PRINT_FUNCTIONS_FOR_DEBUGGINGXX
#include <stdio.h>
// ifdef these out to not have compiler warnings
static void printencoded(const uint8_t *pEncoded, size_t nLen)
{
- int i;
+ size_t i;
for(i = 0; i < nLen; i++) {
uint8_t Z = pEncoded[i];
printf("%02x ", Z);
@@ -84,25 +84,30 @@
#include <stdio.h>
int Compare(UsefulBufC U1, UsefulBufC U2) {
- int i;
+ size_t i;
for(i = 0; i < U1.len; i++) {
if(((uint8_t *)U1.ptr)[i] != ((uint8_t *)U2.ptr)[i]) {
- printf("%d 0x%x 0x%x\n", i, ((uint8_t *)U1.ptr)[i], ((uint8_t *)U2.ptr)[i]);
+ printf("Position: %d Actual: 0x%x Expected: 0x%x\n", i, ((uint8_t *)U1.ptr)[i], ((uint8_t *)U2.ptr)[i]);
return 1;
}
}
return 0;
}
-#endif
+#define CheckResults(Enc, Expected) \
+ Compare(Enc, (UsefulBufC){Expected, sizeof(Expected)})
+#else
#define CheckResults(Enc, Expected) \
UsefulBuf_Compare(Enc, (UsefulBufC){Expected, sizeof(Expected)})
-//#define CheckResults(Enc, Expected) \
-// Compare(Enc, (UsefulBufC){Expected, sizeof(Expected)})
+#endif
+
+
+
+
@@ -498,8 +503,10 @@
QCBOREncode_OpenArray(&ECtx);
// Non-map ints
- // QCBOREncode_AddUInt64_3(&ECtx, "UINT62", QCBOR_NO_INT_LABEL, 100, 89989909); TODO: fix these tests
- //QCBOREncode_AddInt64_3(&ECtx, "INT64", QCBOR_NO_INT_LABEL, 76, 77689989909);
+ QCBOREncode_AddTag(&ECtx, 100);
+ QCBOREncode_AddUInt64_2(&ECtx, "UINT62", QCBOR_NO_INT_LABEL, 89989909);
+ QCBOREncode_AddTag(&ECtx, 76);
+ QCBOREncode_AddInt64_2(&ECtx, "INT64", QCBOR_NO_INT_LABEL, 77689989909);
QCBOREncode_AddUInt64(&ECtx,0);
QCBOREncode_AddInt64(&ECtx, -44);
@@ -512,8 +519,10 @@
QCBOREncode_CloseMap(&ECtx);
// floats and doubles
- QCBOREncode_AddFloat_3(&ECtx, "Jaime", QCBOR_NO_INT_LABEL, 88, 3.14159);
- QCBOREncode_AddDouble_3(&ECtx, "Street", QCBOR_NO_INT_LABEL, 99, 8.654309);
+ QCBOREncode_AddTag(&ECtx, 88);
+ QCBOREncode_AddFloat_2(&ECtx, "Jaime", QCBOR_NO_INT_LABEL, 3.14159);
+ QCBOREncode_AddTag(&ECtx, 99);
+ QCBOREncode_AddDouble_2(&ECtx, "Street", QCBOR_NO_INT_LABEL, 8.654309);
QCBOREncode_AddFloat(&ECtx, 1);
QCBOREncode_AddDouble(&ECtx, 1);
@@ -540,7 +549,8 @@
// binary blobs in maps
QCBOREncode_OpenMap(&ECtx);
- QCBOREncode_AddBytes_3(&ECtx, "binbin", QCBOR_NO_INT_LABEL, 100000, ((UsefulBufC) {(uint8_t []){0x00}, 1}));
+ QCBOREncode_AddTag(&ECtx, 100000);
+ QCBOREncode_AddBytes_2(&ECtx, CBOR_MAJOR_TYPE_BYTE_STRING, "binbin", QCBOR_NO_INT_LABEL, ((UsefulBufC) {(uint8_t []){0x00}, 1}));
QCBOREncode_AddBytesToMap(&ECtx, "blabel", ((UsefulBufC){(uint8_t []){0x01, 0x02, 0x03}, 3}));
QCBOREncode_AddBytesToMapN(&ECtx, 0, ((UsefulBufC){(uint8_t []){0x04, 0x02, 0x03, 0xfe}, 4}));
QCBOREncode_CloseMap(&ECtx);
@@ -556,8 +566,9 @@
// text blobs in maps
QCBOREncode_OpenMap(&ECtx);
QCBOREncode_AddTextToMap(&ECtx, "#####", SZLiteralToUsefulBufC("foo bar foo foo"));
- QCBOREncode_AddText_3(&ECtx, "____", QCBOR_NO_INT_LABEL, CBOR_TAG_NONE, SZLiteralToUsefulBufC("foo bar"));
- QCBOREncode_AddSZString_3(&ECtx, "()()()", QCBOR_NO_INT_LABEL, 1000, "rab rab oof");
+ QCBOREncode_AddTextToMap(&ECtx, "____", SZLiteralToUsefulBufC("foo bar")); // TODO _2?
+ QCBOREncode_AddTag(&ECtx, 1000);
+ QCBOREncode_AddSZString_2(&ECtx, "()()()", QCBOR_NO_INT_LABEL, "rab rab oof");
QCBOREncode_AddTextToMapN(&ECtx,22, SZLiteralToUsefulBufC("foo foo foo foo"));
QCBOREncode_AddSZStringToMap(&ECtx, "^^", "oooooooof");
QCBOREncode_AddSZStringToMapN(&ECtx, 99, "ffffoooooooof");
@@ -581,7 +592,8 @@
// true / false ...
QCBOREncode_AddSimple(&ECtx, CBOR_SIMPLEV_UNDEF);
QCBOREncode_OpenMap(&ECtx);
- QCBOREncode_AddSimple_3(&ECtx, "dare", QCBOR_NO_INT_LABEL, 66, CBOR_SIMPLEV_TRUE);
+ QCBOREncode_AddTag(&ECtx, 66);
+ QCBOREncode_AddSimple_2(&ECtx, "dare", QCBOR_NO_INT_LABEL, CBOR_SIMPLEV_TRUE);
QCBOREncode_AddSimpleToMap(&ECtx, "uu", CBOR_SIMPLEV_FALSE);
QCBOREncode_AddSimpleToMapN(&ECtx, 737634, CBOR_SIMPLEV_NULL);
QCBOREncode_CloseMap(&ECtx);
@@ -592,7 +604,8 @@
// opening arrays in a map
QCBOREncode_OpenMap(&ECtx);
- QCBOREncode_OpenArray_3(&ECtx, "label and tagged empty array", QCBOR_NO_INT_LABEL, 1093);
+ QCBOREncode_AddTag(&ECtx, 1093);
+ QCBOREncode_OpenArray_2(&ECtx, "label and tagged empty array", QCBOR_NO_INT_LABEL);
QCBOREncode_CloseArray(&ECtx);
QCBOREncode_OpenArrayInMap(&ECtx, "alabl");
QCBOREncode_CloseArray(&ECtx);
@@ -604,7 +617,8 @@
QCBOREncode_OpenMap(&ECtx);
QCBOREncode_OpenMapInMap(&ECtx, "in a map");
QCBOREncode_OpenMapInMapN(&ECtx, 5556);
- QCBOREncode_OpenMap_3(&ECtx, "in a in a in a", QCBOR_NO_INT_LABEL, 9087);
+ QCBOREncode_AddTag(&ECtx, 9087);
+ QCBOREncode_OpenMap_2(&ECtx, "in a in a in a", QCBOR_NO_INT_LABEL);
QCBOREncode_CloseMap(&ECtx);
QCBOREncode_CloseMap(&ECtx);
QCBOREncode_CloseMap(&ECtx);
@@ -612,11 +626,15 @@
// Extended simple values (these are not standard...)
QCBOREncode_OpenMap(&ECtx);
- QCBOREncode_AddRawSimple_3(&ECtx, "s1", QCBOR_NO_INT_LABEL, 88, 255);
- QCBOREncode_AddRawSimple_3(&ECtx, "s2", QCBOR_NO_INT_LABEL, CBOR_TAG_NONE, 0);
- QCBOREncode_AddRawSimple_3(&ECtx, "s3", QCBOR_NO_INT_LABEL, 88, 33);
- QCBOREncode_AddRawSimple_3(&ECtx, NULL, 88378374, 88, 255);
- QCBOREncode_AddRawSimple_3(&ECtx, NULL, 89, 88, 19);
+ QCBOREncode_AddTag(&ECtx, 88);
+ QCBOREncode_AddRawSimple_2(&ECtx, "s1", QCBOR_NO_INT_LABEL, 255);
+ QCBOREncode_AddRawSimple_2(&ECtx, "s2", QCBOR_NO_INT_LABEL, 0);
+ QCBOREncode_AddTag(&ECtx, 88);
+ QCBOREncode_AddRawSimple_2(&ECtx, "s3", QCBOR_NO_INT_LABEL, 33);
+ QCBOREncode_AddTag(&ECtx, 88);
+ QCBOREncode_AddRawSimple_2(&ECtx, NULL, 88378374, 255);
+ QCBOREncode_AddTag(&ECtx, 88);
+ QCBOREncode_AddRawSimple_2(&ECtx, NULL, 89, 19);
QCBOREncode_CloseMap(&ECtx);
@@ -1596,7 +1614,8 @@
QCBOREncode_Init(&EC, MemoryForEncoded);
// top level array for cose sign1, 18 is the tag for COSE sign
- QCBOREncode_OpenArray_3(&EC, NULL, QCBOR_NO_INT_LABEL, 18);
+ QCBOREncode_AddTag(&EC, 18); // TODO: replace with constant
+ QCBOREncode_OpenArray_2(&EC, NULL, QCBOR_NO_INT_LABEL); // TODO: _2
// Add protected headers
QCBOREncode_AddBytes(&EC, ProtectedHeaders);