diff options
| author | rimio <vasi.vilvoiu@gmail.com> | 2018-03-02 00:46:34 +0200 |
|---|---|---|
| committer | rimio <vasi.vilvoiu@gmail.com> | 2018-03-02 00:46:34 +0200 |
| commit | 85f4b2274c7ed2107dd56329c3421c15272e67a5 (patch) | |
| tree | ebfd50ded07ab0eebabcdd5208a3945c1816fbd0 | |
| parent | e1c8564af2b02122e442503dd2c0fb77d2b935e4 (diff) | |
Small fix to arrays and maps; added test case answers
28 files changed, 98 insertions, 3 deletions
diff --git a/src/ecbor_decoder.c b/src/ecbor_decoder.c index 437698d..249d04f 100644 --- a/src/ecbor_decoder.c +++ b/src/ecbor_decoder.c @@ -367,14 +367,14 @@ ecbor_decode_next_internal (ecbor_decode_context_t *context, */ case ECBOR_TYPE_ARRAY: case ECBOR_TYPE_MAP: - /* keep buffer pointer from current pointer */ - item->value.items = context->in_position; - /* discriminate between definite and indefinite maps and arrays */ if (additional == ECBOR_ADDITIONAL_INDEFINITE) { /* mark accordingly */ item->is_indefinite = true; item->size = 1; /* already processed first byte */ + + /* keep buffer pointer from current pointer */ + item->value.items = context->in_position; if (context->mode != ECBOR_MODE_DECODE_STREAMED) { /* we have an indefinite map or array and we're not in streamed mode; @@ -419,6 +419,9 @@ ecbor_decode_next_internal (ecbor_decode_context_t *context, if (rc != ECBOR_OK) { return rc; } + + /* keep buffer pointer from current pointer */ + item->value.items = context->in_position; if (item->type == ECBOR_TYPE_MAP) { /* we keep the total number of items in length, yet the map has the diff --git a/test/files/appendix_a/0044.answer b/test/files/appendix_a/0044.answer new file mode 100644 index 0000000..0865cc4 --- /dev/null +++ b/test/files/appendix_a/0044.answer @@ -0,0 +1 @@ +ECBOR error 100 diff --git a/test/files/appendix_a/0045.answer b/test/files/appendix_a/0045.answer new file mode 100644 index 0000000..0865cc4 --- /dev/null +++ b/test/files/appendix_a/0045.answer @@ -0,0 +1 @@ +ECBOR error 100 diff --git a/test/files/appendix_a/0046.answer b/test/files/appendix_a/0046.answer new file mode 100644 index 0000000..0865cc4 --- /dev/null +++ b/test/files/appendix_a/0046.answer @@ -0,0 +1 @@ +ECBOR error 100 diff --git a/test/files/appendix_a/0047.answer b/test/files/appendix_a/0047.answer new file mode 100644 index 0000000..cece9bc --- /dev/null +++ b/test/files/appendix_a/0047.answer @@ -0,0 +1,2 @@ +[TAG] value 0 + [STR] len 20 value '2013-03-21T20:04:00Z' diff --git a/test/files/appendix_a/0048.answer b/test/files/appendix_a/0048.answer new file mode 100644 index 0000000..df7c72f --- /dev/null +++ b/test/files/appendix_a/0048.answer @@ -0,0 +1,2 @@ +[TAG] value 1 + [UINT] value 1363896240 diff --git a/test/files/appendix_a/0049.answer b/test/files/appendix_a/0049.answer new file mode 100644 index 0000000..1bf9ab2 --- /dev/null +++ b/test/files/appendix_a/0049.answer @@ -0,0 +1,2 @@ +[TAG] value 1 + [FP64] value 1363896240.500000 diff --git a/test/files/appendix_a/0050.answer b/test/files/appendix_a/0050.answer new file mode 100644 index 0000000..6ac580d --- /dev/null +++ b/test/files/appendix_a/0050.answer @@ -0,0 +1,2 @@ +[TAG] value 23 + [BSTR] len 4 value '01020304' diff --git a/test/files/appendix_a/0051.answer b/test/files/appendix_a/0051.answer new file mode 100644 index 0000000..5ca5cc2 --- /dev/null +++ b/test/files/appendix_a/0051.answer @@ -0,0 +1,2 @@ +[TAG] value 24 + [BSTR] len 5 value '6449455446' diff --git a/test/files/appendix_a/0052.answer b/test/files/appendix_a/0052.answer new file mode 100644 index 0000000..1d701cd --- /dev/null +++ b/test/files/appendix_a/0052.answer @@ -0,0 +1,2 @@ +[TAG] value 32 + [STR] len 22 value 'http://www.example.com' diff --git a/test/files/appendix_a/0053.answer b/test/files/appendix_a/0053.answer new file mode 100644 index 0000000..e7dd1ce --- /dev/null +++ b/test/files/appendix_a/0053.answer @@ -0,0 +1 @@ +[BSTR] len 0 value '' diff --git a/test/files/appendix_a/0054.answer b/test/files/appendix_a/0054.answer new file mode 100644 index 0000000..2e61645 --- /dev/null +++ b/test/files/appendix_a/0054.answer @@ -0,0 +1 @@ +[BSTR] len 4 value '01020304' diff --git a/test/files/appendix_a/0055.answer b/test/files/appendix_a/0055.answer new file mode 100644 index 0000000..f0c90c5 --- /dev/null +++ b/test/files/appendix_a/0055.answer @@ -0,0 +1 @@ +[STR] len 0 value '' diff --git a/test/files/appendix_a/0056.answer b/test/files/appendix_a/0056.answer new file mode 100644 index 0000000..369fb4e --- /dev/null +++ b/test/files/appendix_a/0056.answer @@ -0,0 +1 @@ +[STR] len 1 value 'a' diff --git a/test/files/appendix_a/0057.answer b/test/files/appendix_a/0057.answer new file mode 100644 index 0000000..edaedad --- /dev/null +++ b/test/files/appendix_a/0057.answer @@ -0,0 +1 @@ +[STR] len 4 value 'IETF' diff --git a/test/files/appendix_a/0058.answer b/test/files/appendix_a/0058.answer new file mode 100644 index 0000000..6de9af7 --- /dev/null +++ b/test/files/appendix_a/0058.answer @@ -0,0 +1 @@ +[STR] len 2 value '"\' diff --git a/test/files/appendix_a/0059.answer b/test/files/appendix_a/0059.answer new file mode 100644 index 0000000..9cdc70a --- /dev/null +++ b/test/files/appendix_a/0059.answer @@ -0,0 +1 @@ +[STR] len 2 value 'ü' diff --git a/test/files/appendix_a/0060.answer b/test/files/appendix_a/0060.answer new file mode 100644 index 0000000..0f1c3f1 --- /dev/null +++ b/test/files/appendix_a/0060.answer @@ -0,0 +1 @@ +[STR] len 3 value '水' diff --git a/test/files/appendix_a/0061.answer b/test/files/appendix_a/0061.answer new file mode 100644 index 0000000..dedc0a7 --- /dev/null +++ b/test/files/appendix_a/0061.answer @@ -0,0 +1 @@ +[STR] len 4 value '𐅑' diff --git a/test/files/appendix_a/0062.answer b/test/files/appendix_a/0062.answer new file mode 100644 index 0000000..6b91d22 --- /dev/null +++ b/test/files/appendix_a/0062.answer @@ -0,0 +1 @@ +[ARRAY] len 0 diff --git a/test/files/appendix_a/0063.answer b/test/files/appendix_a/0063.answer new file mode 100644 index 0000000..fd6aed3 --- /dev/null +++ b/test/files/appendix_a/0063.answer @@ -0,0 +1,4 @@ +[ARRAY] len 3 + [UINT] value 1 + [UINT] value 2 + [UINT] value 3 diff --git a/test/files/appendix_a/0064.answer b/test/files/appendix_a/0064.answer new file mode 100644 index 0000000..9916194 --- /dev/null +++ b/test/files/appendix_a/0064.answer @@ -0,0 +1,8 @@ +[ARRAY] len 3 + [UINT] value 1 + [ARRAY] len 2 + [UINT] value 2 + [UINT] value 3 + [ARRAY] len 2 + [UINT] value 4 + [UINT] value 5 diff --git a/test/files/appendix_a/0065.answer b/test/files/appendix_a/0065.answer new file mode 100644 index 0000000..ed934a5 --- /dev/null +++ b/test/files/appendix_a/0065.answer @@ -0,0 +1,26 @@ +[ARRAY] len 25 + [UINT] value 1 + [UINT] value 2 + [UINT] value 3 + [UINT] value 4 + [UINT] value 5 + [UINT] value 6 + [UINT] value 7 + [UINT] value 8 + [UINT] value 9 + [UINT] value 10 + [UINT] value 11 + [UINT] value 12 + [UINT] value 13 + [UINT] value 14 + [UINT] value 15 + [UINT] value 16 + [UINT] value 17 + [UINT] value 18 + [UINT] value 19 + [UINT] value 20 + [UINT] value 21 + [UINT] value 22 + [UINT] value 23 + [UINT] value 24 + [UINT] value 25 diff --git a/test/files/appendix_a/0066.answer b/test/files/appendix_a/0066.answer new file mode 100644 index 0000000..53b79d4 --- /dev/null +++ b/test/files/appendix_a/0066.answer @@ -0,0 +1 @@ +[MAP] len 0 diff --git a/test/files/appendix_a/0067.answer b/test/files/appendix_a/0067.answer new file mode 100644 index 0000000..04a526d --- /dev/null +++ b/test/files/appendix_a/0067.answer @@ -0,0 +1,5 @@ +[MAP] len 2 + key[0]: [UINT] value 1 + val[0]: [UINT] value 2 + key[1]: [UINT] value 3 + val[1]: [UINT] value 4 diff --git a/test/files/appendix_a/0068.answer b/test/files/appendix_a/0068.answer new file mode 100644 index 0000000..e92f866 --- /dev/null +++ b/test/files/appendix_a/0068.answer @@ -0,0 +1,7 @@ +[MAP] len 2 + key[0]: [STR] len 1 value 'a' + val[0]: [UINT] value 1 + key[1]: [STR] len 1 value 'b' + val[1]: [ARRAY] len 2 + [UINT] value 2 + [UINT] value 3 diff --git a/test/files/appendix_a/0069.answer b/test/files/appendix_a/0069.answer new file mode 100644 index 0000000..fe20a7b --- /dev/null +++ b/test/files/appendix_a/0069.answer @@ -0,0 +1,5 @@ +[ARRAY] len 2 + [STR] len 1 value 'a' + [MAP] len 1 + key[0]: [STR] len 1 value 'b' + val[0]: [STR] len 1 value 'c' diff --git a/test/files/appendix_a/0070.answer b/test/files/appendix_a/0070.answer new file mode 100644 index 0000000..52b3a8e --- /dev/null +++ b/test/files/appendix_a/0070.answer @@ -0,0 +1,11 @@ +[MAP] len 5 + key[0]: [STR] len 1 value 'a' + val[0]: [STR] len 1 value 'A' + key[1]: [STR] len 1 value 'b' + val[1]: [STR] len 1 value 'B' + key[2]: [STR] len 1 value 'c' + val[2]: [STR] len 1 value 'C' + key[3]: [STR] len 1 value 'd' + val[3]: [STR] len 1 value 'D' + key[4]: [STR] len 1 value 'e' + val[4]: [STR] len 1 value 'E' |
