192 cxJsonDestroy(&json); |
192 cxJsonDestroy(&json); |
193 } |
193 } |
194 } |
194 } |
195 |
195 |
196 CX_TEST(test_json_token_wrongly_completed) { |
196 CX_TEST(test_json_token_wrongly_completed) { |
|
197 CxTestingAllocator talloc; |
|
198 cx_testing_allocator_init(&talloc); |
|
199 const CxAllocator *alloc = &talloc.base; |
|
200 |
197 cxstring text = cx_str("{\"number\": 47110815!}"); |
201 cxstring text = cx_str("{\"number\": 47110815!}"); |
198 cxstring part1 = cx_strsubsl(text, 0, 16); |
202 cxstring part1 = cx_strsubsl(text, 0, 16); |
199 cxstring part2 = cx_strsubs(text, 16); |
203 cxstring part2 = cx_strsubs(text, 16); |
200 |
204 |
201 CxJson json; |
205 CX_TEST_DO { |
202 cxJsonInit(&json, NULL); |
206 CxJson json; |
203 CX_TEST_DO { |
207 cxJsonInit(&json, alloc); |
|
208 |
204 CxJsonStatus result; |
209 CxJsonStatus result; |
205 CxJsonValue *obj; |
210 CxJsonValue *obj; |
206 |
211 |
207 cxJsonFill(&json, part1); |
212 cxJsonFill(&json, part1); |
208 result = cxJsonNext(&json, &obj); |
213 result = cxJsonNext(&json, &obj); |
209 CX_TEST_ASSERT(result == CX_JSON_INCOMPLETE_DATA); |
214 CX_TEST_ASSERT(result == CX_JSON_INCOMPLETE_DATA); |
210 cxJsonFill(&json, part2); |
215 cxJsonFill(&json, part2); |
211 result = cxJsonNext(&json, &obj); |
216 result = cxJsonNext(&json, &obj); |
212 CX_TEST_ASSERT(result == CX_JSON_FORMAT_ERROR_NUMBER); |
217 CX_TEST_ASSERT(result == CX_JSON_FORMAT_ERROR_NUMBER); |
213 CX_TEST_ASSERT(obj->type == CX_JSON_NOTHING); |
218 CX_TEST_ASSERT(obj->type == CX_JSON_NOTHING); |
214 } |
219 |
215 cxJsonDestroy(&json); |
220 cxJsonDestroy(&json); |
|
221 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
222 } |
|
223 cx_testing_allocator_destroy(&talloc); |
216 } |
224 } |
217 |
225 |
218 CX_TEST(test_json_subsequent_fill) { |
226 CX_TEST(test_json_subsequent_fill) { |
219 cxstring text = cx_str( |
227 cxstring text = cx_str( |
220 "{\"message\":\"success\" , \"__timestamp\":1729348561}"); |
228 "{\"message\":\"success\" , \"__timestamp\":1729348561}"); |