summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrimio <vasi.vilvoiu@gmail.com>2018-03-02 00:46:34 +0200
committerrimio <vasi.vilvoiu@gmail.com>2018-03-02 00:46:34 +0200
commit85f4b2274c7ed2107dd56329c3421c15272e67a5 (patch)
treeebfd50ded07ab0eebabcdd5208a3945c1816fbd0
parente1c8564af2b02122e442503dd2c0fb77d2b935e4 (diff)
Small fix to arrays and maps; added test case answers
-rw-r--r--src/ecbor_decoder.c9
-rw-r--r--test/files/appendix_a/0044.answer1
-rw-r--r--test/files/appendix_a/0045.answer1
-rw-r--r--test/files/appendix_a/0046.answer1
-rw-r--r--test/files/appendix_a/0047.answer2
-rw-r--r--test/files/appendix_a/0048.answer2
-rw-r--r--test/files/appendix_a/0049.answer2
-rw-r--r--test/files/appendix_a/0050.answer2
-rw-r--r--test/files/appendix_a/0051.answer2
-rw-r--r--test/files/appendix_a/0052.answer2
-rw-r--r--test/files/appendix_a/0053.answer1
-rw-r--r--test/files/appendix_a/0054.answer1
-rw-r--r--test/files/appendix_a/0055.answer1
-rw-r--r--test/files/appendix_a/0056.answer1
-rw-r--r--test/files/appendix_a/0057.answer1
-rw-r--r--test/files/appendix_a/0058.answer1
-rw-r--r--test/files/appendix_a/0059.answer1
-rw-r--r--test/files/appendix_a/0060.answer1
-rw-r--r--test/files/appendix_a/0061.answer1
-rw-r--r--test/files/appendix_a/0062.answer1
-rw-r--r--test/files/appendix_a/0063.answer4
-rw-r--r--test/files/appendix_a/0064.answer8
-rw-r--r--test/files/appendix_a/0065.answer26
-rw-r--r--test/files/appendix_a/0066.answer1
-rw-r--r--test/files/appendix_a/0067.answer5
-rw-r--r--test/files/appendix_a/0068.answer7
-rw-r--r--test/files/appendix_a/0069.answer5
-rw-r--r--test/files/appendix_a/0070.answer11
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'