Greenbone Vulnerability Management Libraries 22.32.0
jsonpull_tests.c File Reference
#include "json.c"
#include "jsonpull.c"
#include <cgreen/cgreen.h>
#include <cgreen/mocks.h>
#include <stdio.h>
Include dependency graph for jsonpull_tests.c:

Go to the source code of this file.

Macros

#define INIT_JSON_PARSER(json_string)
#define INIT_READ_ERROR_JSON_PARSER(json_string)
#define CLEANUP_JSON_PARSER
#define CHECK_PATH_EQUALS(expected_path_str)
#define JSON_READ_ERROR   "error reading JSON stream: Input/output error"

Functions

 Describe (jsonpull)
 BeforeEach (jsonpull)
 AfterEach (jsonpull)
static FILE * fstropen_r (const char *str)
static ssize_t read_with_error_on_eof (void *stream_cookie, char *buf, size_t size)
 Ensure (jsonpull, can_init_parser_with_defaults)
 Ensure (jsonpull, can_parse_false)
 Ensure (jsonpull, can_parse_true)
 Ensure (jsonpull, can_parse_null)
 Ensure (jsonpull, can_parse_empty_strings)
 Ensure (jsonpull, can_parse_strings_with_content)
 Ensure (jsonpull, can_parse_integer_numbers)
 Ensure (jsonpull, can_parse_floating_point_numbers)
 Ensure (jsonpull, can_parse_empty_arrays)
 Ensure (jsonpull, can_parse_single_elem_arrays)
 Ensure (jsonpull, can_parse_multiple_elem_arrays)
 Ensure (jsonpull, can_parse_empty_objects)
 Ensure (jsonpull, can_parse_single_elem_objects)
 Ensure (jsonpull, can_parse_multiple_elem_objects)
 Ensure (jsonpull, can_parse_nested_containers)
 Ensure (jsonpull, can_expand_arrays)
 Ensure (jsonpull, can_expand_objects)
 Ensure (jsonpull, fails_for_read_error)
 Ensure (jsonpull, fails_for_misspelled_true)
 Ensure (jsonpull, fails_for_incomplete_true)
 Ensure (jsonpull, fails_for_misspelled_false)
 Ensure (jsonpull, fails_for_misspelled_null)
 Ensure (jsonpull, fails_for_string_read_error)
 Ensure (jsonpull, fails_for_string_eof)
 Ensure (jsonpull, fails_for_overlong_string)
 Ensure (jsonpull, fails_for_invalid_string)
 Ensure (jsonpull, fails_for_number_read_error)
 Ensure (jsonpull, fails_for_overlong_number)
 Ensure (jsonpull, fails_for_invalid_number)
 Ensure (jsonpull, fails_for_array_eof)
 Ensure (jsonpull, fails_for_array_eof_after_value)
 Ensure (jsonpull, fails_for_array_eof_after_comma)
 Ensure (jsonpull, fails_for_array_read_error)
 Ensure (jsonpull, fails_for_invalid_array_bracket)
 Ensure (jsonpull, fails_for_invalid_array_bracket_after_value)
 Ensure (jsonpull, fails_for_invalid_array_other_char)
 Ensure (jsonpull, fails_for_invalid_array_other_char_after_value)
 Ensure (jsonpull, fails_for_object_key_eof)
 Ensure (jsonpull, fails_for_object_key_read_error)
 Ensure (jsonpull, fails_for_object_key_invalid_string)
 Ensure (jsonpull, fails_for_invalid_object_key_bracket)
 Ensure (jsonpull, fails_for_invalid_object_key_other_char)
 Ensure (jsonpull, fails_for_object_colon_eof)
 Ensure (jsonpull, fails_for_object_colon_read_error)
 Ensure (jsonpull, fails_for_object_colon_other_char)
 Ensure (jsonpull, fails_for_object_value_eof)
 Ensure (jsonpull, fails_for_object_value_read_error)
 Ensure (jsonpull, fails_for_object_value_curly_brace)
 Ensure (jsonpull, fails_for_object_value_square_bracket)
 Ensure (jsonpull, fails_for_object_eof_after_value)
 Ensure (jsonpull, fails_for_object_square_bracket_after_value)
 Ensure (jsonpull, fails_for_object_eof_after_comma)
 Ensure (jsonpull, fails_for_read_error_after_doc_end)
 Ensure (jsonpull, fails_for_content_after_doc_end)
 Ensure (jsonpull, fails_for_expand_before_container)
 Ensure (jsonpull, fails_for_expand_after_value)
 Ensure (jsonpull, fails_for_expand_invalid_content)
 Ensure (jsonpull, fails_for_expand_overlong)
 Ensure (jsonpull, fails_for_expand_unexpected_curly_brace)
 Ensure (jsonpull, fails_for_expand_unexpected_square_bracket)
 Ensure (jsonpull, fails_for_expand_eof)
 Ensure (jsonpull, fails_for_expand_read_error)
int main (int argc, char **argv)

Macro Definition Documentation

◆ CHECK_PATH_EQUALS

#define CHECK_PATH_EQUALS ( expected_path_str)
Value:
path_str = gvm_json_path_to_string (event.path); \
assert_that (path_str, is_equal_to_string (expected_path_str)); \
g_free (path_str);
gchar * gvm_json_path_to_string(GQueue *path)
Converts a path as used by a JSON pull parser to a JSONPath string.
Definition jsonpull.c:910

Definition at line 69 of file jsonpull_tests.c.

69#define CHECK_PATH_EQUALS(expected_path_str) \
70 path_str = gvm_json_path_to_string (event.path); \
71 assert_that (path_str, is_equal_to_string (expected_path_str)); \
72 g_free (path_str);

Referenced by Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), and Ensure().

◆ CLEANUP_JSON_PARSER

#define CLEANUP_JSON_PARSER
Value:
gvm_json_pull_parser_cleanup (&parser); \
fclose (jsonstream);
void gvm_json_pull_event_cleanup(gvm_json_pull_event_t *event)
Frees all data of JSON pull event data structure.
Definition jsonpull.c:61

Definition at line 64 of file jsonpull_tests.c.

64#define CLEANUP_JSON_PARSER \
65 gvm_json_pull_event_cleanup (&event); \
66 gvm_json_pull_parser_cleanup (&parser); \
67 fclose (jsonstream);

Referenced by Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), and Ensure().

◆ INIT_JSON_PARSER

#define INIT_JSON_PARSER ( json_string)
Value:
FILE *jsonstream; \
jsonstream = fstropen_r (json_string); \
gvm_json_pull_event_init (&event); \
gvm_json_pull_parser_init_full (&parser, jsonstream, 100, 4);
static FILE * fstropen_r(const char *str)
Event generated by the JSON pull parser.
Definition jsonpull.h:59
A json pull parser.
Definition jsonpull.h:86

Definition at line 44 of file jsonpull_tests.c.

44#define INIT_JSON_PARSER(json_string) \
45 gvm_json_pull_event_t event; \
46 gvm_json_pull_parser_t parser; \
47 FILE *jsonstream; \
48 jsonstream = fstropen_r (json_string); \
49 gvm_json_pull_event_init (&event); \
50 gvm_json_pull_parser_init_full (&parser, jsonstream, 100, 4);

Referenced by Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), and Ensure().

◆ INIT_READ_ERROR_JSON_PARSER

#define INIT_READ_ERROR_JSON_PARSER ( json_string)
Value:
FILE *jsonstream = fstropen_r (json_string); \
cookie_io_functions_t io_functions = {.read = read_with_error_on_eof, \
.write = NULL, \
.seek = NULL, \
.close = NULL}; \
FILE *errorstream = fopencookie (jsonstream, "r", io_functions); \
gvm_json_pull_event_init (&event); \
gvm_json_pull_parser_init_full (&parser, errorstream, 100, 4);
static ssize_t read_with_error_on_eof(void *stream_cookie, char *buf, size_t size)

Definition at line 52 of file jsonpull_tests.c.

52#define INIT_READ_ERROR_JSON_PARSER(json_string) \
53 gvm_json_pull_event_t event; \
54 gvm_json_pull_parser_t parser; \
55 FILE *jsonstream = fstropen_r (json_string); \
56 cookie_io_functions_t io_functions = {.read = read_with_error_on_eof, \
57 .write = NULL, \
58 .seek = NULL, \
59 .close = NULL}; \
60 FILE *errorstream = fopencookie (jsonstream, "r", io_functions); \
61 gvm_json_pull_event_init (&event); \
62 gvm_json_pull_parser_init_full (&parser, errorstream, 100, 4);

Referenced by Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), and Ensure().

◆ JSON_READ_ERROR

#define JSON_READ_ERROR   "error reading JSON stream: Input/output error"

Definition at line 74 of file jsonpull_tests.c.

Referenced by Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), and Ensure().

Function Documentation

◆ AfterEach()

AfterEach ( jsonpull )

Definition at line 17 of file jsonpull_tests.c.

18{
19}

◆ BeforeEach()

BeforeEach ( jsonpull )

Definition at line 14 of file jsonpull_tests.c.

15{
16}

◆ Describe()

Describe ( jsonpull )

◆ Ensure() [1/62]

Ensure ( jsonpull ,
can_expand_arrays  )

Definition at line 385 of file jsonpull_tests.c.

386{
387 gchar *path_str, *error_message;
388 cJSON *expanded, *child;
389 INIT_JSON_PARSER ("[[], [1], [2, [3]], [\"A\", \"\\\"B]\"]]");
390
391 gvm_json_pull_parser_next (&parser, &event);
392 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
393 CHECK_PATH_EQUALS ("$");
394
395 // empty array
396 gvm_json_pull_parser_next (&parser, &event);
397 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
398 CHECK_PATH_EQUALS ("$[0]");
399 expanded = gvm_json_pull_expand_container (&parser, &error_message);
400 assert_that (error_message, is_equal_to_string (NULL));
401 assert_that (expanded, is_not_null);
402 assert_that (cJSON_IsArray (expanded), is_true);
403 assert_that (expanded->child, is_null);
404 cJSON_Delete (expanded);
405
406 // single-element array
407 gvm_json_pull_parser_next (&parser, &event);
408 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
409 CHECK_PATH_EQUALS ("$[1]");
410 expanded = gvm_json_pull_expand_container (&parser, &error_message);
411 assert_that (error_message, is_null);
412 assert_that (expanded, is_not_null);
413 assert_that (cJSON_IsArray (expanded), is_true);
414 child = expanded->child;
415 assert_that (child, is_not_null);
416 assert_that (cJSON_IsNumber (child), is_true);
417 assert_that (child->valueint, is_equal_to (1));
418 child = child->next;
419 assert_that (child, is_null);
420 cJSON_Delete (expanded);
421
422 // multi-element array
423 gvm_json_pull_parser_next (&parser, &event);
424 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
425 CHECK_PATH_EQUALS ("$[2]");
426 expanded = gvm_json_pull_expand_container (&parser, &error_message);
427 assert_that (error_message, is_null);
428 assert_that (expanded, is_not_null);
429 assert_that (cJSON_IsArray (expanded), is_true);
430 child = expanded->child;
431 assert_that (child, is_not_null);
432 assert_that (cJSON_IsNumber (child), is_true);
433 assert_that (child->valueint, is_equal_to (2));
434 child = child->next;
435 assert_that (child, is_not_null);
436 assert_that (cJSON_IsArray (child), is_true);
437 assert_that (child->child->valueint, is_equal_to (3));
438 cJSON_Delete (expanded);
439
440 // string array
441 gvm_json_pull_parser_next (&parser, &event);
442 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
443 CHECK_PATH_EQUALS ("$[3]");
444 expanded = gvm_json_pull_expand_container (&parser, &error_message);
445 assert_that (error_message, is_null);
446 assert_that (expanded, is_not_null);
447 assert_that (cJSON_IsArray (expanded), is_true);
448 child = expanded->child;
449 assert_that (child, is_not_null);
450 assert_that (cJSON_IsString (child), is_true);
451 assert_that (child->valuestring, is_equal_to_string ("A"));
452 child = child->next;
453 assert_that (child, is_not_null);
454 assert_that (cJSON_IsString (child), is_true);
455 assert_that (child->valuestring, is_equal_to_string ("\"B]"));
456 cJSON_Delete (expanded);
457
458 // array end and EOF
459 gvm_json_pull_parser_next (&parser, &event);
460 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_END));
461 CHECK_PATH_EQUALS ("$");
462
463 gvm_json_pull_parser_next (&parser, &event);
464 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
466}
void gvm_json_pull_parser_next(gvm_json_pull_parser_t *parser, gvm_json_pull_event_t *event)
Get the next event from a JSON pull parser.
Definition jsonpull.c:669
cJSON * gvm_json_pull_expand_container(gvm_json_pull_parser_t *parser, gchar **error_message)
Expands the current array or object of a JSON pull parser.
Definition jsonpull.c:746
@ GVM_JSON_PULL_EVENT_EOF
Definition jsonpull.h:51
@ GVM_JSON_PULL_EVENT_ARRAY_END
Definition jsonpull.h:44
@ GVM_JSON_PULL_EVENT_ARRAY_START
Definition jsonpull.h:43
#define INIT_JSON_PARSER(json_string)
#define CLEANUP_JSON_PARSER
#define CHECK_PATH_EQUALS(expected_path_str)

References CHECK_PATH_EQUALS, CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_END, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_EOF, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [2/62]

Ensure ( jsonpull ,
can_expand_objects  )

Definition at line 468 of file jsonpull_tests.c.

469{
470 gchar *path_str, *error_message;
471 cJSON *expanded, *child;
473 "{\"A\":{}, \"B\": {\"C\": \"\\\"D}\", \"E\":123, \"F\":{}}}");
474
475 gvm_json_pull_parser_next (&parser, &event);
476 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
477 CHECK_PATH_EQUALS ("$");
478
479 gvm_json_pull_parser_next (&parser, &event);
480 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
481 CHECK_PATH_EQUALS ("$['A']");
482 expanded = gvm_json_pull_expand_container (&parser, &error_message);
483 assert_that (error_message, is_null);
484 assert_that (cJSON_IsObject (expanded), is_true);
485 assert_that (expanded->child, is_null);
486 cJSON_Delete (expanded);
487
488 gvm_json_pull_parser_next (&parser, &event);
489 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
490 CHECK_PATH_EQUALS ("$['B']");
491 expanded = gvm_json_pull_expand_container (&parser, &error_message);
492 assert_that (error_message, is_null);
493 assert_that (cJSON_IsObject (expanded), is_true);
494 child = expanded->child;
495 assert_that (child, is_not_null);
496 assert_that (cJSON_IsString (child), is_true);
497 assert_that (child->string, is_equal_to_string ("C"));
498 assert_that (child->valuestring, is_equal_to_string ("\"D}"));
499 child = child->next;
500 assert_that (child, is_not_null);
501 assert_that (cJSON_IsNumber (child), is_true);
502 assert_that (child->string, is_equal_to_string ("E"));
503 assert_that (child->valueint, is_equal_to (123));
504 child = child->next;
505 assert_that (child, is_not_null);
506 assert_that (cJSON_IsObject (child), is_true);
507 assert_that (child->string, is_equal_to_string ("F"));
508 assert_that (child->child, is_null);
509 cJSON_Delete (expanded);
510
511 // object end and EOF
512 gvm_json_pull_parser_next (&parser, &event);
513 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_END));
514 CHECK_PATH_EQUALS ("$");
515
516 gvm_json_pull_parser_next (&parser, &event);
517 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
519}
@ GVM_JSON_PULL_EVENT_OBJECT_START
Definition jsonpull.h:45
@ GVM_JSON_PULL_EVENT_OBJECT_END
Definition jsonpull.h:46

References CHECK_PATH_EQUALS, CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_OBJECT_END, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [3/62]

Ensure ( jsonpull ,
can_init_parser_with_defaults  )

Definition at line 76 of file jsonpull_tests.c.

77{
79 FILE *strfile = fstropen_r ("[]");
80
81 gvm_json_pull_parser_init (&parser, strfile);
82 assert_that (parser.input_stream, is_equal_to (strfile));
83 assert_that (parser.parse_buffer_limit,
85 assert_that (parser.read_buffer_size,
86 is_equal_to (GVM_JSON_PULL_READ_BUFFER_SIZE));
88}
void gvm_json_pull_parser_cleanup(gvm_json_pull_parser_t *parser)
Frees the data of a JSON pull parser.
Definition jsonpull.c:120
void gvm_json_pull_parser_init(gvm_json_pull_parser_t *parser, FILE *input_stream)
Initializes a JSON pull parser with default buffer sizes.
Definition jsonpull.c:109
#define GVM_JSON_PULL_READ_BUFFER_SIZE
Definition jsonpull.h:80
#define GVM_JSON_PULL_PARSE_BUFFER_LIMIT
Definition jsonpull.h:78
size_t read_buffer_size
Size of the stream reading buffer.
Definition jsonpull.h:93
size_t parse_buffer_limit
Maximum parse buffer size.
Definition jsonpull.h:98
FILE * input_stream
Input stream.
Definition jsonpull.h:91

References fstropen_r(), GVM_JSON_PULL_PARSE_BUFFER_LIMIT, gvm_json_pull_parser_cleanup(), gvm_json_pull_parser_init(), GVM_JSON_PULL_READ_BUFFER_SIZE, gvm_json_pull_parser_t::input_stream, gvm_json_pull_parser_t::parse_buffer_limit, and gvm_json_pull_parser_t::read_buffer_size.

Here is the call graph for this function:

◆ Ensure() [4/62]

Ensure ( jsonpull ,
can_parse_empty_arrays  )

Definition at line 183 of file jsonpull_tests.c.

184{
185 INIT_JSON_PARSER ("[ ]");
186
187 gvm_json_pull_parser_next (&parser, &event);
188 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
189
190 gvm_json_pull_parser_next (&parser, &event);
191 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_END));
192
193 gvm_json_pull_parser_next (&parser, &event);
194 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
196}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_END, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_EOF, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [5/62]

Ensure ( jsonpull ,
can_parse_empty_objects  )

Definition at line 249 of file jsonpull_tests.c.

250{
251 INIT_JSON_PARSER ("{ }");
252
253 gvm_json_pull_parser_next (&parser, &event);
254 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
255
256 gvm_json_pull_parser_next (&parser, &event);
257 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_END));
258
259 gvm_json_pull_parser_next (&parser, &event);
260 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
262}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_OBJECT_END, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [6/62]

Ensure ( jsonpull ,
can_parse_empty_strings  )

Definition at line 131 of file jsonpull_tests.c.

132{
133 INIT_JSON_PARSER ("\"\"");
134
135 gvm_json_pull_parser_next (&parser, &event);
136 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_STRING));
137 assert_that (event.value->valuestring, is_equal_to_string (""));
138
139 gvm_json_pull_parser_next (&parser, &event);
140 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
142}
@ GVM_JSON_PULL_EVENT_STRING
Definition jsonpull.h:47

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_STRING, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [7/62]

Ensure ( jsonpull ,
can_parse_false  )

Definition at line 90 of file jsonpull_tests.c.

91{
92 INIT_JSON_PARSER ("false");
93
94 gvm_json_pull_parser_next (&parser, &event);
95 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_BOOLEAN));
96 assert_that (cJSON_IsBool (event.value), is_true);
97 assert_that (cJSON_IsFalse (event.value), is_true);
98
99 gvm_json_pull_parser_next (&parser, &event);
100 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
102}
@ GVM_JSON_PULL_EVENT_BOOLEAN
Definition jsonpull.h:49

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_BOOLEAN, GVM_JSON_PULL_EVENT_EOF, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [8/62]

Ensure ( jsonpull ,
can_parse_floating_point_numbers  )

Definition at line 170 of file jsonpull_tests.c.

171{
172 INIT_JSON_PARSER ("\t\n 1.2345e+4\n");
173
174 gvm_json_pull_parser_next (&parser, &event);
175 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
176 assert_that (event.value->valuedouble, is_equal_to (1.2345e+4));
177
178 gvm_json_pull_parser_next (&parser, &event);
179 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
181}
@ GVM_JSON_PULL_EVENT_NUMBER
Definition jsonpull.h:48

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [9/62]

Ensure ( jsonpull ,
can_parse_integer_numbers  )

Definition at line 157 of file jsonpull_tests.c.

158{
159 INIT_JSON_PARSER ("-0987");
160
161 gvm_json_pull_parser_next (&parser, &event);
162 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
163 assert_that (event.value->valueint, is_equal_to (-987));
164
165 gvm_json_pull_parser_next (&parser, &event);
166 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
168}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [10/62]

Ensure ( jsonpull ,
can_parse_multiple_elem_arrays  )

Definition at line 219 of file jsonpull_tests.c.

220{
221 gchar *path_str;
222 INIT_JSON_PARSER ("[123, \"ABC\", null]");
223
224 gvm_json_pull_parser_next (&parser, &event);
225 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
226
227 gvm_json_pull_parser_next (&parser, &event);
228 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
229 assert_that (event.value->valueint, is_equal_to (123));
230 CHECK_PATH_EQUALS ("$[0]");
231
232 gvm_json_pull_parser_next (&parser, &event);
233 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_STRING));
234 assert_that (event.value->valuestring, is_equal_to_string ("ABC"));
235 CHECK_PATH_EQUALS ("$[1]");
236
237 gvm_json_pull_parser_next (&parser, &event);
238 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NULL));
239 CHECK_PATH_EQUALS ("$[2]");
240
241 gvm_json_pull_parser_next (&parser, &event);
242 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_END));
243
244 gvm_json_pull_parser_next (&parser, &event);
245 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
247}
@ GVM_JSON_PULL_EVENT_NULL
Definition jsonpull.h:50

References CHECK_PATH_EQUALS, CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_END, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_NULL, GVM_JSON_PULL_EVENT_NUMBER, GVM_JSON_PULL_EVENT_STRING, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [11/62]

Ensure ( jsonpull ,
can_parse_multiple_elem_objects  )

Definition at line 285 of file jsonpull_tests.c.

286{
287 gchar *path_str;
288 INIT_JSON_PARSER ("{ \"keyA\": \"valueA\", \"keyB\":12345 }");
289
290 gvm_json_pull_parser_next (&parser, &event);
291 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
292
293 gvm_json_pull_parser_next (&parser, &event);
294 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_STRING));
295 assert_that (event.value->valuestring, is_equal_to_string ("valueA"));
296 CHECK_PATH_EQUALS ("$['keyA']");
297
298 gvm_json_pull_parser_next (&parser, &event);
299 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
300 assert_that (event.value->valueint, is_equal_to (12345));
301 CHECK_PATH_EQUALS ("$['keyB']");
302
303 gvm_json_pull_parser_next (&parser, &event);
304 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_END));
305
306 gvm_json_pull_parser_next (&parser, &event);
307 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
309}

References CHECK_PATH_EQUALS, CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_NUMBER, GVM_JSON_PULL_EVENT_OBJECT_END, GVM_JSON_PULL_EVENT_OBJECT_START, GVM_JSON_PULL_EVENT_STRING, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [12/62]

Ensure ( jsonpull ,
can_parse_nested_containers  )

Definition at line 311 of file jsonpull_tests.c.

312{
313 gchar *path_str;
314 INIT_JSON_PARSER ("[{\"A\":null, \"B\":{\"C\": [1,2]}, \"D\":\"3\"}, [4]]");
315
316 gvm_json_pull_parser_next (&parser, &event);
317 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
318 CHECK_PATH_EQUALS ("$");
319
320 gvm_json_pull_parser_next (&parser, &event);
321 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
322 CHECK_PATH_EQUALS ("$[0]");
323
324 gvm_json_pull_parser_next (&parser, &event);
325 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NULL));
326 CHECK_PATH_EQUALS ("$[0]['A']");
327
328 gvm_json_pull_parser_next (&parser, &event);
329 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
330 CHECK_PATH_EQUALS ("$[0]['B']");
331
332 gvm_json_pull_parser_next (&parser, &event);
333 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
334 CHECK_PATH_EQUALS ("$[0]['B']['C']");
335
336 gvm_json_pull_parser_next (&parser, &event);
337 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
338 assert_that (event.value->valueint, is_equal_to (1));
339 CHECK_PATH_EQUALS ("$[0]['B']['C'][0]");
340
341 gvm_json_pull_parser_next (&parser, &event);
342 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
343 assert_that (event.value->valueint, is_equal_to (2));
344 CHECK_PATH_EQUALS ("$[0]['B']['C'][1]");
345
346 gvm_json_pull_parser_next (&parser, &event);
347 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_END));
348 CHECK_PATH_EQUALS ("$[0]['B']['C']");
349
350 gvm_json_pull_parser_next (&parser, &event);
351 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_END));
352 CHECK_PATH_EQUALS ("$[0]['B']");
353
354 gvm_json_pull_parser_next (&parser, &event);
355 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_STRING));
356 assert_that (event.value->valuestring, is_equal_to_string ("3"));
357 CHECK_PATH_EQUALS ("$[0]['D']");
358
359 gvm_json_pull_parser_next (&parser, &event);
360 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_END));
361 CHECK_PATH_EQUALS ("$[0]");
362
363 gvm_json_pull_parser_next (&parser, &event);
364 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
365 CHECK_PATH_EQUALS ("$[1]");
366
367 gvm_json_pull_parser_next (&parser, &event);
368 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
369 assert_that (event.value->valueint, is_equal_to (4));
370 CHECK_PATH_EQUALS ("$[1][0]");
371
372 gvm_json_pull_parser_next (&parser, &event);
373 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_END));
374 CHECK_PATH_EQUALS ("$[1]");
375
376 gvm_json_pull_parser_next (&parser, &event);
377 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_END));
378 CHECK_PATH_EQUALS ("$");
379
380 gvm_json_pull_parser_next (&parser, &event);
381 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
383}

References CHECK_PATH_EQUALS, CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_END, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_NULL, GVM_JSON_PULL_EVENT_NUMBER, GVM_JSON_PULL_EVENT_OBJECT_END, GVM_JSON_PULL_EVENT_OBJECT_START, GVM_JSON_PULL_EVENT_STRING, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [13/62]

Ensure ( jsonpull ,
can_parse_null  )

Definition at line 118 of file jsonpull_tests.c.

119{
120 INIT_JSON_PARSER ("null");
121
122 gvm_json_pull_parser_next (&parser, &event);
123 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NULL));
124 assert_that (cJSON_IsNull (event.value), is_true);
125
126 gvm_json_pull_parser_next (&parser, &event);
127 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
129}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_NULL, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [14/62]

Ensure ( jsonpull ,
can_parse_single_elem_arrays  )

Definition at line 198 of file jsonpull_tests.c.

199{
200 gchar *path_str;
201 INIT_JSON_PARSER ("[ 123 ]");
202
203 gvm_json_pull_parser_next (&parser, &event);
204 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
205
206 gvm_json_pull_parser_next (&parser, &event);
207 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
208 assert_that (event.value->valueint, is_equal_to (123));
209 CHECK_PATH_EQUALS ("$[0]");
210
211 gvm_json_pull_parser_next (&parser, &event);
212 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_END));
213
214 gvm_json_pull_parser_next (&parser, &event);
215 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
217}

References CHECK_PATH_EQUALS, CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_END, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [15/62]

Ensure ( jsonpull ,
can_parse_single_elem_objects  )

Definition at line 264 of file jsonpull_tests.c.

265{
266 gchar *path_str;
267 INIT_JSON_PARSER ("{ \"keyA\": \"valueA\" }");
268
269 gvm_json_pull_parser_next (&parser, &event);
270 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
271
272 gvm_json_pull_parser_next (&parser, &event);
273 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_STRING));
274 assert_that (event.value->valuestring, is_equal_to_string ("valueA"));
275 CHECK_PATH_EQUALS ("$['keyA']");
276
277 gvm_json_pull_parser_next (&parser, &event);
278 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_END));
279
280 gvm_json_pull_parser_next (&parser, &event);
281 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
283}

References CHECK_PATH_EQUALS, CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_OBJECT_END, GVM_JSON_PULL_EVENT_OBJECT_START, GVM_JSON_PULL_EVENT_STRING, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [16/62]

Ensure ( jsonpull ,
can_parse_strings_with_content  )

Definition at line 144 of file jsonpull_tests.c.

145{
146 INIT_JSON_PARSER ("\n\"123\\tXYZ\\nÄöü\"\n");
147
148 gvm_json_pull_parser_next (&parser, &event);
149 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_STRING));
150 assert_that (event.value->valuestring, is_equal_to_string ("123\tXYZ\nÄöü"));
151
152 gvm_json_pull_parser_next (&parser, &event);
153 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
155}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_EOF, GVM_JSON_PULL_EVENT_STRING, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [17/62]

Ensure ( jsonpull ,
can_parse_true  )

Definition at line 104 of file jsonpull_tests.c.

105{
106 INIT_JSON_PARSER ("true");
107
108 gvm_json_pull_parser_next (&parser, &event);
109 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_BOOLEAN));
110 assert_that (cJSON_IsBool (event.value), is_true);
111 assert_that (cJSON_IsTrue (event.value), is_true);
112
113 gvm_json_pull_parser_next (&parser, &event);
114 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_EOF));
116}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_BOOLEAN, GVM_JSON_PULL_EVENT_EOF, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [18/62]

Ensure ( jsonpull ,
fails_for_array_eof  )

Definition at line 652 of file jsonpull_tests.c.

653{
654 INIT_JSON_PARSER ("[");
655
656 gvm_json_pull_parser_next (&parser, &event);
657 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
658 gvm_json_pull_parser_next (&parser, &event);
659 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
660 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
662}
@ GVM_JSON_PULL_EVENT_ERROR
Definition jsonpull.h:52

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [19/62]

Ensure ( jsonpull ,
fails_for_array_eof_after_comma  )

Definition at line 678 of file jsonpull_tests.c.

679{
680 INIT_JSON_PARSER ("[123,");
681
682 gvm_json_pull_parser_next (&parser, &event);
683 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
684 gvm_json_pull_parser_next (&parser, &event);
685 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
686 gvm_json_pull_parser_next (&parser, &event);
687 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
688 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
690}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [20/62]

Ensure ( jsonpull ,
fails_for_array_eof_after_value  )

Definition at line 664 of file jsonpull_tests.c.

665{
666 INIT_JSON_PARSER ("[123");
667
668 gvm_json_pull_parser_next (&parser, &event);
669 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
670 gvm_json_pull_parser_next (&parser, &event);
671 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
672 gvm_json_pull_parser_next (&parser, &event);
673 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
674 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
676}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [21/62]

Ensure ( jsonpull ,
fails_for_array_read_error  )

Definition at line 692 of file jsonpull_tests.c.

693{
695
696 gvm_json_pull_parser_next (&parser, &event);
697 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
698 gvm_json_pull_parser_next (&parser, &event);
699 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
700 assert_that (event.error_message, is_equal_to_string (JSON_READ_ERROR));
702}
#define JSON_READ_ERROR
#define INIT_READ_ERROR_JSON_PARSER(json_string)

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ Ensure() [22/62]

Ensure ( jsonpull ,
fails_for_content_after_doc_end  )

Definition at line 964 of file jsonpull_tests.c.

965{
966 INIT_JSON_PARSER ("123 456");
967
968 gvm_json_pull_parser_next (&parser, &event);
969 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
970 gvm_json_pull_parser_next (&parser, &event);
971 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
972 assert_that (event.error_message,
973 is_equal_to_string ("unexpected character at end of file (52)"));
975}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [23/62]

Ensure ( jsonpull ,
fails_for_expand_after_value  )

Definition at line 992 of file jsonpull_tests.c.

993{
994 cJSON *cjson_value;
995 gchar *error_message;
996 INIT_JSON_PARSER ("[123, 456]");
997
998 gvm_json_pull_parser_next (&parser, &event);
999 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
1000 gvm_json_pull_parser_next (&parser, &event);
1001 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
1002
1003 cjson_value = gvm_json_pull_expand_container (&parser, &error_message);
1004 assert_that (cjson_value, is_null);
1005 assert_that (error_message, is_equal_to_string ("can only expand after"
1006 " array or object start"));
1007
1008 g_free (error_message);
1010}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [24/62]

Ensure ( jsonpull ,
fails_for_expand_before_container  )

Definition at line 977 of file jsonpull_tests.c.

978{
979 cJSON *cjson_value;
980 gchar *error_message;
981 INIT_JSON_PARSER ("[]");
982
983 cjson_value = gvm_json_pull_expand_container (&parser, &error_message);
984 assert_that (cjson_value, is_null);
985 assert_that (error_message, is_equal_to_string ("can only expand after"
986 " array or object start"));
987
988 g_free (error_message);
990}

References CLEANUP_JSON_PARSER, gvm_json_pull_expand_container(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [25/62]

Ensure ( jsonpull ,
fails_for_expand_eof  )

Definition at line 1085 of file jsonpull_tests.c.

1086{
1087 cJSON *cjson_value;
1088 gchar *error_message;
1089 INIT_JSON_PARSER ("[ 123");
1090
1091 gvm_json_pull_parser_next (&parser, &event);
1092 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
1093
1094 cjson_value = gvm_json_pull_expand_container (&parser, &error_message);
1095 assert_that (cjson_value, is_null);
1096 assert_that (error_message, is_equal_to_string ("unexpected EOF"));
1097
1098 g_free (error_message);
1100}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [26/62]

Ensure ( jsonpull ,
fails_for_expand_invalid_content  )

Definition at line 1012 of file jsonpull_tests.c.

1013{
1014 cJSON *cjson_value;
1015 gchar *error_message;
1016 INIT_JSON_PARSER ("[invalid content]");
1017
1018 gvm_json_pull_parser_next (&parser, &event);
1019 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
1020
1021 cjson_value = gvm_json_pull_expand_container (&parser, &error_message);
1022 assert_that (cjson_value, is_null);
1023 assert_that (error_message,
1024 is_equal_to_string ("could not parse expanded container"));
1025
1026 g_free (error_message);
1028}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [27/62]

Ensure ( jsonpull ,
fails_for_expand_overlong  )

Definition at line 1030 of file jsonpull_tests.c.

1031{
1032 cJSON *cjson_value;
1033 gchar *error_message;
1034 INIT_JSON_PARSER ("[1234567890.123456780]");
1035 parser.parse_buffer_limit = 10;
1036
1037 gvm_json_pull_parser_next (&parser, &event);
1038 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
1039
1040 cjson_value = gvm_json_pull_expand_container (&parser, &error_message);
1041 assert_that (cjson_value, is_null);
1042 assert_that (error_message,
1043 is_equal_to_string ("container exceeds size limit of 10 bytes"));
1044
1045 g_free (error_message);
1047}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [28/62]

Ensure ( jsonpull ,
fails_for_expand_read_error  )

Definition at line 1102 of file jsonpull_tests.c.

1103{
1104 cJSON *cjson_value;
1105 gchar *error_message;
1106 INIT_READ_ERROR_JSON_PARSER ("[ 123 ");
1107
1108 gvm_json_pull_parser_next (&parser, &event);
1109 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
1110
1111 cjson_value = gvm_json_pull_expand_container (&parser, &error_message);
1112 assert_that (cjson_value, is_null);
1113 assert_that (error_message, is_equal_to_string (JSON_READ_ERROR));
1114
1115 g_free (error_message);
1117}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ Ensure() [29/62]

Ensure ( jsonpull ,
fails_for_expand_unexpected_curly_brace  )

Definition at line 1049 of file jsonpull_tests.c.

1050{
1051 cJSON *cjson_value;
1052 gchar *error_message;
1053 INIT_JSON_PARSER ("[ 123 }");
1054
1055 gvm_json_pull_parser_next (&parser, &event);
1056 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
1057
1058 cjson_value = gvm_json_pull_expand_container (&parser, &error_message);
1059 assert_that (cjson_value, is_null);
1060 assert_that (error_message,
1061 is_equal_to_string ("unexpected closing curly brace"));
1062
1063 g_free (error_message);
1065}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [30/62]

Ensure ( jsonpull ,
fails_for_expand_unexpected_square_bracket  )

Definition at line 1067 of file jsonpull_tests.c.

1068{
1069 cJSON *cjson_value;
1070 gchar *error_message;
1071 INIT_JSON_PARSER ("{ \"A\": 123 ]");
1072
1073 gvm_json_pull_parser_next (&parser, &event);
1074 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
1075
1076 cjson_value = gvm_json_pull_expand_container (&parser, &error_message);
1077 assert_that (cjson_value, is_null);
1078 assert_that (error_message,
1079 is_equal_to_string ("unexpected closing square bracket"));
1080
1081 g_free (error_message);
1083}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_expand_container(), gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [31/62]

Ensure ( jsonpull ,
fails_for_incomplete_true  )

Definition at line 544 of file jsonpull_tests.c.

545{
546 INIT_JSON_PARSER ("tru");
547
548 gvm_json_pull_parser_next (&parser, &event);
549 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
550 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
552}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [32/62]

Ensure ( jsonpull ,
fails_for_invalid_array_bracket  )

Definition at line 704 of file jsonpull_tests.c.

705{
706 INIT_JSON_PARSER ("[}");
707
708 gvm_json_pull_parser_next (&parser, &event);
709 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
710 gvm_json_pull_parser_next (&parser, &event);
711 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
712 assert_that (event.error_message,
713 is_equal_to_string ("unexpected closing curly brace"));
715}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [33/62]

Ensure ( jsonpull ,
fails_for_invalid_array_bracket_after_value  )

Definition at line 717 of file jsonpull_tests.c.

718{
719 INIT_JSON_PARSER ("[123}");
720
721 gvm_json_pull_parser_next (&parser, &event);
722 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
723 gvm_json_pull_parser_next (&parser, &event);
724 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
725 gvm_json_pull_parser_next (&parser, &event);
726 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
727 assert_that (event.error_message,
728 is_equal_to_string ("unexpected closing curly brace"));
730}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [34/62]

Ensure ( jsonpull ,
fails_for_invalid_array_other_char  )

Definition at line 732 of file jsonpull_tests.c.

733{
734 INIT_JSON_PARSER ("[!");
735
736 gvm_json_pull_parser_next (&parser, &event);
737 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
738 gvm_json_pull_parser_next (&parser, &event);
739 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
740 assert_that (event.error_message,
741 is_equal_to_string ("unexpected character"));
743}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [35/62]

Ensure ( jsonpull ,
fails_for_invalid_array_other_char_after_value  )

Definition at line 745 of file jsonpull_tests.c.

746{
747 INIT_JSON_PARSER ("[123!");
748
749 gvm_json_pull_parser_next (&parser, &event);
750 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ARRAY_START));
751 gvm_json_pull_parser_next (&parser, &event);
752 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
753 gvm_json_pull_parser_next (&parser, &event);
754 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
755 assert_that (event.error_message,
756 is_equal_to_string ("expected comma or end of container"));
758}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ARRAY_START, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [36/62]

Ensure ( jsonpull ,
fails_for_invalid_number  )

Definition at line 641 of file jsonpull_tests.c.

642{
643 INIT_JSON_PARSER ("-+e");
644
645 gvm_json_pull_parser_next (&parser, &event);
646 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
647 assert_that (event.error_message,
648 is_equal_to_string ("error parsing number"));
650}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [37/62]

Ensure ( jsonpull ,
fails_for_invalid_object_key_bracket  )

Definition at line 797 of file jsonpull_tests.c.

798{
799 INIT_JSON_PARSER ("{]");
800
801 gvm_json_pull_parser_next (&parser, &event);
802 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
803 gvm_json_pull_parser_next (&parser, &event);
804 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
805 assert_that (event.error_message,
806 is_equal_to_string ("unexpected closing square bracket"));
808}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [38/62]

Ensure ( jsonpull ,
fails_for_invalid_object_key_other_char  )

Definition at line 810 of file jsonpull_tests.c.

811{
812 INIT_JSON_PARSER ("{!");
813
814 gvm_json_pull_parser_next (&parser, &event);
815 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
816 gvm_json_pull_parser_next (&parser, &event);
817 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
818 assert_that (event.error_message,
819 is_equal_to_string ("unexpected character"));
821}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [39/62]

Ensure ( jsonpull ,
fails_for_invalid_string  )

Definition at line 608 of file jsonpull_tests.c.

609{
610 INIT_JSON_PARSER ("\"This has an invalid escape sequence: \\x\"");
611
612 gvm_json_pull_parser_next (&parser, &event);
613 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
614 assert_that (event.error_message,
615 is_equal_to_string ("error parsing string"));
617}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [40/62]

Ensure ( jsonpull ,
fails_for_misspelled_false  )

Definition at line 554 of file jsonpull_tests.c.

555{
556 INIT_JSON_PARSER ("falxyz");
557
558 gvm_json_pull_parser_next (&parser, &event);
559 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
560 assert_that (event.error_message,
561 is_equal_to_string ("misspelled keyword 'false'"));
563}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [41/62]

Ensure ( jsonpull ,
fails_for_misspelled_null  )

Definition at line 565 of file jsonpull_tests.c.

566{
567 INIT_JSON_PARSER ("nulx");
568
569 gvm_json_pull_parser_next (&parser, &event);
570 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
571 assert_that (event.error_message,
572 is_equal_to_string ("misspelled keyword 'null'"));
574}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [42/62]

Ensure ( jsonpull ,
fails_for_misspelled_true  )

Definition at line 533 of file jsonpull_tests.c.

534{
535 INIT_JSON_PARSER ("trxyz");
536
537 gvm_json_pull_parser_next (&parser, &event);
538 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
539 assert_that (event.error_message,
540 is_equal_to_string ("misspelled keyword 'true'"));
542}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [43/62]

Ensure ( jsonpull ,
fails_for_number_read_error  )

Definition at line 619 of file jsonpull_tests.c.

620{
621 INIT_READ_ERROR_JSON_PARSER ("12345.123456789");
622
623 gvm_json_pull_parser_next (&parser, &event);
624 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
625 assert_that (event.error_message, is_equal_to_string (JSON_READ_ERROR));
627}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ Ensure() [44/62]

Ensure ( jsonpull ,
fails_for_object_colon_eof  )

Definition at line 823 of file jsonpull_tests.c.

824{
825 INIT_JSON_PARSER ("{\"A\" ");
826
827 gvm_json_pull_parser_next (&parser, &event);
828 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
829 gvm_json_pull_parser_next (&parser, &event);
830 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
831 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
833}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [45/62]

Ensure ( jsonpull ,
fails_for_object_colon_other_char  )

Definition at line 847 of file jsonpull_tests.c.

848{
849 INIT_JSON_PARSER ("{\"A\"!");
850
851 gvm_json_pull_parser_next (&parser, &event);
852 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
853 gvm_json_pull_parser_next (&parser, &event);
854 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
855 assert_that (event.error_message, is_equal_to_string ("expected colon"));
857}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [46/62]

Ensure ( jsonpull ,
fails_for_object_colon_read_error  )

Definition at line 835 of file jsonpull_tests.c.

836{
837 INIT_READ_ERROR_JSON_PARSER ("{\"A\" ");
838
839 gvm_json_pull_parser_next (&parser, &event);
840 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
841 gvm_json_pull_parser_next (&parser, &event);
842 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
843 assert_that (event.error_message, is_equal_to_string (JSON_READ_ERROR));
845}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ Ensure() [47/62]

Ensure ( jsonpull ,
fails_for_object_eof_after_comma  )

Definition at line 938 of file jsonpull_tests.c.

939{
940 INIT_JSON_PARSER ("{\"A\": 123, ");
941
942 gvm_json_pull_parser_next (&parser, &event);
943 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
944 gvm_json_pull_parser_next (&parser, &event);
945 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
946 gvm_json_pull_parser_next (&parser, &event);
947 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
948 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
950}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [48/62]

Ensure ( jsonpull ,
fails_for_object_eof_after_value  )

Definition at line 909 of file jsonpull_tests.c.

910{
911 INIT_JSON_PARSER ("{\"A\": 123");
912
913 gvm_json_pull_parser_next (&parser, &event);
914 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
915 gvm_json_pull_parser_next (&parser, &event);
916 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
917 gvm_json_pull_parser_next (&parser, &event);
918 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
919 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
921}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [49/62]

Ensure ( jsonpull ,
fails_for_object_key_eof  )

Definition at line 760 of file jsonpull_tests.c.

761{
762 INIT_JSON_PARSER ("{");
763
764 gvm_json_pull_parser_next (&parser, &event);
765 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
766 gvm_json_pull_parser_next (&parser, &event);
767 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
768 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
770}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [50/62]

Ensure ( jsonpull ,
fails_for_object_key_invalid_string  )

Definition at line 784 of file jsonpull_tests.c.

785{
786 INIT_JSON_PARSER ("{\"invalid escape:\\x\": 123}");
787
788 gvm_json_pull_parser_next (&parser, &event);
789 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
790 gvm_json_pull_parser_next (&parser, &event);
791 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
792 assert_that (event.error_message,
793 is_equal_to_string ("error parsing string"));
795}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [51/62]

Ensure ( jsonpull ,
fails_for_object_key_read_error  )

Definition at line 772 of file jsonpull_tests.c.

773{
775
776 gvm_json_pull_parser_next (&parser, &event);
777 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
778 gvm_json_pull_parser_next (&parser, &event);
779 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
780 assert_that (event.error_message, is_equal_to_string (JSON_READ_ERROR));
782}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ Ensure() [52/62]

Ensure ( jsonpull ,
fails_for_object_square_bracket_after_value  )

Definition at line 923 of file jsonpull_tests.c.

924{
925 INIT_JSON_PARSER ("{\"A\": 123 ]");
926
927 gvm_json_pull_parser_next (&parser, &event);
928 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
929 gvm_json_pull_parser_next (&parser, &event);
930 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
931 gvm_json_pull_parser_next (&parser, &event);
932 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
933 assert_that (event.error_message,
934 is_equal_to_string ("unexpected closing square bracket"));
936}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [53/62]

Ensure ( jsonpull ,
fails_for_object_value_curly_brace  )

Definition at line 883 of file jsonpull_tests.c.

884{
885 INIT_JSON_PARSER ("{\"A\": }");
886
887 gvm_json_pull_parser_next (&parser, &event);
888 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
889 gvm_json_pull_parser_next (&parser, &event);
890 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
891 assert_that (event.error_message,
892 is_equal_to_string ("unexpected closing curly brace"));
894}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [54/62]

Ensure ( jsonpull ,
fails_for_object_value_eof  )

Definition at line 859 of file jsonpull_tests.c.

860{
861 INIT_JSON_PARSER ("{\"A\": ");
862
863 gvm_json_pull_parser_next (&parser, &event);
864 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
865 gvm_json_pull_parser_next (&parser, &event);
866 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
867 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
869}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [55/62]

Ensure ( jsonpull ,
fails_for_object_value_read_error  )

Definition at line 871 of file jsonpull_tests.c.

872{
873 INIT_READ_ERROR_JSON_PARSER ("{\"A\": ");
874
875 gvm_json_pull_parser_next (&parser, &event);
876 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
877 gvm_json_pull_parser_next (&parser, &event);
878 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
879 assert_that (event.error_message, is_equal_to_string (JSON_READ_ERROR));
881}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ Ensure() [56/62]

Ensure ( jsonpull ,
fails_for_object_value_square_bracket  )

Definition at line 896 of file jsonpull_tests.c.

897{
898 INIT_JSON_PARSER ("{\"A\": ]");
899
900 gvm_json_pull_parser_next (&parser, &event);
901 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_OBJECT_START));
902 gvm_json_pull_parser_next (&parser, &event);
903 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
904 assert_that (event.error_message,
905 is_equal_to_string ("unexpected closing square bracket"));
907}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_OBJECT_START, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [57/62]

Ensure ( jsonpull ,
fails_for_overlong_number  )

Definition at line 629 of file jsonpull_tests.c.

630{
631 INIT_READ_ERROR_JSON_PARSER ("12345.123456789");
632 parser.parse_buffer_limit = 10;
633
634 gvm_json_pull_parser_next (&parser, &event);
635 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
636 assert_that (event.error_message,
637 is_equal_to_string ("number exceeds size limit of 10 bytes"));
639}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_READ_ERROR_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [58/62]

Ensure ( jsonpull ,
fails_for_overlong_string  )

Definition at line 596 of file jsonpull_tests.c.

597{
598 INIT_JSON_PARSER ("\"This should be too long for a small parse buffer\"");
599 parser.parse_buffer_limit = 10;
600
601 gvm_json_pull_parser_next (&parser, &event);
602 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
603 assert_that (event.error_message,
604 is_equal_to_string ("string exceeds size limit of 10 bytes"));
606}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [59/62]

Ensure ( jsonpull ,
fails_for_read_error  )

Definition at line 521 of file jsonpull_tests.c.

522{
524
525 gvm_json_pull_parser_next (&parser, &event);
526 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
527 assert_that (event.error_message, is_equal_to_string (JSON_READ_ERROR));
530 fclose (jsonstream);
531}

References gvm_json_pull_event_cleanup(), GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_cleanup(), gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ Ensure() [60/62]

Ensure ( jsonpull ,
fails_for_read_error_after_doc_end  )

Definition at line 952 of file jsonpull_tests.c.

953{
955
956 gvm_json_pull_parser_next (&parser, &event);
957 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_NUMBER));
958 gvm_json_pull_parser_next (&parser, &event);
959 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
960 assert_that (event.error_message, is_equal_to_string (JSON_READ_ERROR));
962}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, GVM_JSON_PULL_EVENT_NUMBER, gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ Ensure() [61/62]

Ensure ( jsonpull ,
fails_for_string_eof  )

Definition at line 586 of file jsonpull_tests.c.

587{
588 INIT_JSON_PARSER ("\"no closing quote here");
589
590 gvm_json_pull_parser_next (&parser, &event);
591 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
592 assert_that (event.error_message, is_equal_to_string ("unexpected EOF"));
594}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), and INIT_JSON_PARSER.

Here is the call graph for this function:

◆ Ensure() [62/62]

Ensure ( jsonpull ,
fails_for_string_read_error  )

Definition at line 576 of file jsonpull_tests.c.

577{
578 INIT_READ_ERROR_JSON_PARSER ("\"ABCDEFG\"");
579
580 gvm_json_pull_parser_next (&parser, &event);
581 assert_that (event.type, is_equal_to (GVM_JSON_PULL_EVENT_ERROR));
582 assert_that (event.error_message, is_equal_to_string (JSON_READ_ERROR));
584}

References CLEANUP_JSON_PARSER, GVM_JSON_PULL_EVENT_ERROR, gvm_json_pull_parser_next(), INIT_READ_ERROR_JSON_PARSER, and JSON_READ_ERROR.

Here is the call graph for this function:

◆ fstropen_r()

FILE * fstropen_r ( const char * str)
inlinestatic

Definition at line 25 of file jsonpull_tests.c.

26{
27 return fmemopen ((void *) str, strlen (str), "r");
28}

Referenced by Ensure().

Here is the caller graph for this function:

◆ main()

int main ( int argc,
char ** argv )

Definition at line 1120 of file jsonpull_tests.c.

1121{
1122 int ret;
1123 TestSuite *suite;
1124
1125 suite = create_test_suite ();
1126
1127 add_test_with_context (suite, jsonpull, can_init_parser_with_defaults);
1128
1129 add_test_with_context (suite, jsonpull, can_parse_false);
1130 add_test_with_context (suite, jsonpull, can_parse_true);
1131 add_test_with_context (suite, jsonpull, can_parse_null);
1132
1133 add_test_with_context (suite, jsonpull, can_parse_empty_strings);
1134 add_test_with_context (suite, jsonpull, can_parse_strings_with_content);
1135
1136 add_test_with_context (suite, jsonpull, can_parse_integer_numbers);
1137 add_test_with_context (suite, jsonpull, can_parse_floating_point_numbers);
1138
1139 add_test_with_context (suite, jsonpull, can_parse_empty_arrays);
1140 add_test_with_context (suite, jsonpull, can_parse_single_elem_arrays);
1141 add_test_with_context (suite, jsonpull, can_parse_multiple_elem_arrays);
1142
1143 add_test_with_context (suite, jsonpull, can_parse_empty_objects);
1144 add_test_with_context (suite, jsonpull, can_parse_single_elem_objects);
1145 add_test_with_context (suite, jsonpull, can_parse_multiple_elem_objects);
1146 add_test_with_context (suite, jsonpull, can_parse_nested_containers);
1147 add_test_with_context (suite, jsonpull, can_expand_arrays);
1148 add_test_with_context (suite, jsonpull, can_expand_objects);
1149
1150 add_test_with_context (suite, jsonpull, fails_for_read_error);
1151
1152 add_test_with_context (suite, jsonpull, fails_for_misspelled_true);
1153 add_test_with_context (suite, jsonpull, fails_for_incomplete_true);
1154 add_test_with_context (suite, jsonpull, fails_for_misspelled_false);
1155 add_test_with_context (suite, jsonpull, fails_for_misspelled_null);
1156
1157 add_test_with_context (suite, jsonpull, fails_for_string_eof);
1158 add_test_with_context (suite, jsonpull, fails_for_string_read_error);
1159 add_test_with_context (suite, jsonpull, fails_for_overlong_string);
1160 add_test_with_context (suite, jsonpull, fails_for_invalid_string);
1161
1162 add_test_with_context (suite, jsonpull, fails_for_number_read_error);
1163 add_test_with_context (suite, jsonpull, fails_for_overlong_number);
1164 add_test_with_context (suite, jsonpull, fails_for_invalid_number);
1165
1166 add_test_with_context (suite, jsonpull, fails_for_array_eof);
1167 add_test_with_context (suite, jsonpull, fails_for_array_eof_after_value);
1168 add_test_with_context (suite, jsonpull, fails_for_array_eof_after_comma);
1169 add_test_with_context (suite, jsonpull, fails_for_array_read_error);
1170 add_test_with_context (suite, jsonpull, fails_for_invalid_array_bracket);
1171 add_test_with_context (suite, jsonpull,
1172 fails_for_invalid_array_bracket_after_value);
1173 add_test_with_context (suite, jsonpull, fails_for_invalid_array_other_char);
1174 add_test_with_context (suite, jsonpull,
1175 fails_for_invalid_array_other_char_after_value);
1176
1177 add_test_with_context (suite, jsonpull, fails_for_object_key_eof);
1178 add_test_with_context (suite, jsonpull, fails_for_object_key_read_error);
1179 add_test_with_context (suite, jsonpull, fails_for_object_key_invalid_string);
1180 add_test_with_context (suite, jsonpull, fails_for_invalid_object_key_bracket);
1181 add_test_with_context (suite, jsonpull,
1182 fails_for_invalid_object_key_other_char);
1183
1184 add_test_with_context (suite, jsonpull, fails_for_object_colon_eof);
1185 add_test_with_context (suite, jsonpull, fails_for_object_colon_read_error);
1186 add_test_with_context (suite, jsonpull, fails_for_object_colon_other_char);
1187
1188 add_test_with_context (suite, jsonpull, fails_for_object_value_eof);
1189 add_test_with_context (suite, jsonpull, fails_for_object_value_read_error);
1190 add_test_with_context (suite, jsonpull, fails_for_object_value_curly_brace);
1191 add_test_with_context (suite, jsonpull,
1192 fails_for_object_value_square_bracket);
1193 add_test_with_context (suite, jsonpull, fails_for_object_eof_after_value);
1194 add_test_with_context (suite, jsonpull, fails_for_object_eof_after_comma);
1195 add_test_with_context (suite, jsonpull,
1196 fails_for_object_square_bracket_after_value);
1197
1198 add_test_with_context (suite, jsonpull, fails_for_read_error_after_doc_end);
1199 add_test_with_context (suite, jsonpull, fails_for_content_after_doc_end);
1200
1201 add_test_with_context (suite, jsonpull, fails_for_expand_before_container);
1202 add_test_with_context (suite, jsonpull, fails_for_expand_after_value);
1203 add_test_with_context (suite, jsonpull, fails_for_expand_invalid_content);
1204 add_test_with_context (suite, jsonpull, fails_for_expand_overlong);
1205 add_test_with_context (suite, jsonpull,
1206 fails_for_expand_unexpected_curly_brace);
1207 add_test_with_context (suite, jsonpull,
1208 fails_for_expand_unexpected_square_bracket);
1209 add_test_with_context (suite, jsonpull, fails_for_expand_read_error);
1210 add_test_with_context (suite, jsonpull, fails_for_expand_eof);
1211
1212 if (argc > 1)
1213 ret = run_single_test (suite, argv[1], create_text_reporter ());
1214 else
1215 ret = run_test_suite (suite, create_text_reporter ());
1216
1217 destroy_test_suite (suite);
1218
1219 return ret;
1220}

◆ read_with_error_on_eof()

ssize_t read_with_error_on_eof ( void * stream_cookie,
char * buf,
size_t size )
static

Definition at line 31 of file jsonpull_tests.c.

32{
33 FILE *stream = stream_cookie;
34 ssize_t ret = fread (buf, 1, size, stream);
35 if (ret <= 0)
36 {
37 errno = EIO;
38 return -1;
39 }
40 else
41 return ret;
42}