Skip to content

Commit 630b8d7

Browse files
committed
json_cursor_tests
1 parent 5866cfe commit 630b8d7

File tree

3 files changed

+144
-141
lines changed

3 files changed

+144
-141
lines changed

include/jsoncons/json_cursor.hpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -280,14 +280,17 @@ class basic_json_cursor : public basic_staj_cursor<CharT>, private virtual ser_c
280280
void read_to(basic_json_visitor<CharT>& visitor,
281281
std::error_code& ec) override
282282
{
283-
parser_.cursor_mode(false);
284-
parser_.mark_level(parser_.level());
285-
if (cursor_visitor_.event().send_json_event(visitor, *this, ec))
283+
if (current().event_type() == staj_event_type::begin_object || current().event_type() == staj_event_type::begin_array)
286284
{
287-
read_next(visitor, ec);
285+
parser_.cursor_mode(false);
286+
parser_.mark_level(parser_.level());
287+
if (cursor_visitor_.event().send_json_event(visitor, *this, ec))
288+
{
289+
read_next(visitor, ec);
290+
}
291+
parser_.cursor_mode(true);
292+
parser_.mark_level(0);
288293
}
289-
parser_.cursor_mode(true);
290-
parser_.mark_level(0);
291294
}
292295

293296
void next() override

test/CMakeLists.txt

Lines changed: 134 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -59,141 +59,141 @@ endif()
5959
target_include_directories (catch INTERFACE ${CATCH_INCLUDE_DIR})
6060

6161
add_executable(unit_tests
62-
#bson/src/bson_cursor_tests.cpp
63-
#bson/src/bson_encoder_tests.cpp
64-
#bson/src/bson_reader_tests.cpp
65-
#bson/src/bson_decimal128_tests.cpp
66-
#bson/src/bson_oid_tests.cpp
67-
#bson/src/bson_test_suite.cpp
68-
#bson/src/encode_decode_bson_tests.cpp
69-
#cbor/src/cbor_bitset_traits_tests.cpp
70-
#cbor/src/cbor_cursor_tests.cpp
71-
#cbor/src/cbor_event_reader_tests.cpp
72-
#cbor/src/cbor_encoder_tests.cpp
73-
#cbor/src/cbor_event_visitor_tests.cpp
74-
#cbor/src/cbor_reader_tests.cpp
75-
#cbor/src/cbor_tests.cpp
76-
#cbor/src/cbor_typed_array_tests.cpp
77-
#cbor/src/decode_cbor_tests.cpp
78-
#cbor/src/encode_cbor_tests.cpp
79-
#csv/src/csv_reader_tests.cpp
80-
#csv/src/csv_cursor_tests.cpp
81-
#csv/src/csv_subfield_tests.cpp
82-
#csv/src/csv_tests.cpp
83-
#csv/src/encode_decode_csv_tests.cpp
84-
#jmespath/src/jmespath_custom_function_tests.cpp
85-
#jmespath/src/jmespath_expression_tests.cpp
86-
#jmespath/src/jmespath_let_tests.cpp
87-
#jmespath/src/jmespath_tests.cpp
88-
#mergepatch/src/mergepatch_test_suite.cpp
89-
#jsonpatch/src/jsonpatch_test_suite.cpp
90-
#jsonpatch/src/jsonpatch_tests.cpp
91-
#jsonpath/src/jsonpath_flatten_tests.cpp
92-
#jsonpath/src/jsonpath_function_tests.cpp
93-
#jsonpath/src/path_node_tests.cpp
94-
#jsonpath/src/json_location_tests.cpp
95-
#jsonpath/src/json_location_parser_tests.cpp
96-
#jsonpath/src/jsonpath_custom_function_tests.cpp
97-
#jsonpath/src/jsonpath_json_query_tests.cpp
98-
#jsonpath/src/jsonpath_expression_tests.cpp
99-
#jsonpath/src/jsonpath_json_replace_tests.cpp
100-
#jsonpath/src/jsonpath_select_paths_tests.cpp
101-
#jsonpath/src/jsonpath_test_suite.cpp
102-
#jsonpath/src/jsonpath_stateful_allocator_tests.cpp
103-
#jsonpointer/src/jsonpointer_flatten_tests.cpp
104-
#jsonpointer/src/jsonpointer_tests.cpp
105-
#jsonschema/src/abort_early_tests.cpp
106-
#jsonschema/src/custom_message_tests.cpp
107-
#jsonschema/src/json_schema_walk_tests.cpp
108-
#jsonschema/src/format_validator_tests.cpp
109-
#jsonschema/src/validation_report_tests.cpp
110-
#jsonschema/src/dynamic_ref_tests.cpp
111-
#jsonschema/src/jsonschema_defaults_tests.cpp
112-
#jsonschema/src/jsonschema_draft4_tests.cpp
113-
#jsonschema/src/jsonschema_draft6_tests.cpp
114-
#jsonschema/src/jsonschema_draft7_tests.cpp
115-
#jsonschema/src/jsonschema_draft201909_tests.cpp
116-
#jsonschema/src/jsonschema_draft202012_tests.cpp
117-
#jsonschema/src/schema_version_tests.cpp
118-
#msgpack/src/decode_msgpack_tests.cpp
119-
#msgpack/src/encode_msgpack_tests.cpp
120-
#msgpack/src/msgpack_bitset_traits_tests.cpp
121-
#msgpack/src/msgpack_cursor_tests.cpp
122-
#msgpack/src/msgpack_event_reader_tests.cpp
123-
#msgpack/src/msgpack_encoder_tests.cpp
124-
#msgpack/src/msgpack_tests.cpp
125-
#msgpack/src/msgpack_timestamp_tests.cpp
126-
#corelib/src/source_adaptor_tests.cpp
127-
#corelib/src/value_converter_tests.cpp
128-
#corelib/src/decode_traits_tests.cpp
129-
#corelib/src/detail/optional_tests.cpp
130-
#corelib/src/detail/span_tests.cpp
131-
#corelib/src/detail/string_view_tests.cpp
132-
#corelib/src/utility/byte_string_tests.cpp
133-
#corelib/src/utility/heap_string_tests.cpp
134-
#corelib/src/utility/bigint_tests.cpp
135-
#corelib/src/utility/uri_tests.cpp
136-
#corelib/src/utility/extension_traits_tests.cpp
137-
#corelib/src/utility/unicode_conv_tests.cpp
138-
#corelib/src/detail/to_integer_tests.cpp
139-
#corelib/src/double_round_trip_tests.cpp
140-
#corelib/src/double_to_string_tests.cpp
141-
#corelib/src/dtoa_tests.cpp
142-
#corelib/src/encode_decode_json_tests.cpp
143-
#corelib/src/encode_traits_tests.cpp
144-
#corelib/src/json_parser_recovery_tests.cpp
145-
#corelib/src/json_array_tests.cpp
146-
#corelib/src/json_as_tests.cpp
147-
#corelib/src/json_bitset_traits_tests.cpp
148-
#corelib/src/json_checker_tests.cpp
149-
#corelib/src/json_compare_tests.cpp
150-
#corelib/src/json_const_pointer_arg_tests.cpp
151-
#corelib/src/json_pointer_arg_tests.cpp
152-
#corelib/src/json_assignment_tests.cpp
153-
#corelib/src/json_constructor_tests.cpp
154-
#corelib/src/json_cursor_tests.cpp
155-
#corelib/src/json_encoder_tests.cpp
156-
#corelib/src/json_exception_tests.cpp
157-
#corelib/src/json_filter_tests.cpp
158-
#corelib/src/json_in_place_update_tests.cpp
159-
#corelib/src/json_integer_tests.cpp
160-
#corelib/src/json_less_tests.cpp
161-
#corelib/src/json_line_split_tests.cpp
162-
#corelib/src/json_literal_operator_tests.cpp
163-
#corelib/src/json_object_tests.cpp
164-
#corelib/src/ojson_object_tests.cpp
165-
#corelib/src/json_options_tests.cpp
166-
#corelib/src/json_parser_error_tests.cpp
167-
#corelib/src/json_parser_position_tests.cpp
168-
#corelib/src/json_parser_tests.cpp
169-
#corelib/src/json_push_back_tests.cpp
170-
#corelib/src/json_reader_exception_tests.cpp
171-
#corelib/src/json_reader_tests.cpp
172-
#corelib/src/json_storage_tests.cpp
173-
#corelib/src/json_swap_tests.cpp
174-
#corelib/src/json_traits_macro_functional_tests.cpp
175-
#corelib/src/json_traits_macro_tests.cpp
176-
#corelib/src/json_traits_macro_limit_tests.cpp
177-
#corelib/src/json_traits_name_macro_tests.cpp
62+
bson/src/bson_cursor_tests.cpp
63+
bson/src/bson_encoder_tests.cpp
64+
bson/src/bson_reader_tests.cpp
65+
bson/src/bson_decimal128_tests.cpp
66+
bson/src/bson_oid_tests.cpp
67+
bson/src/bson_test_suite.cpp
68+
bson/src/encode_decode_bson_tests.cpp
69+
cbor/src/cbor_bitset_traits_tests.cpp
70+
cbor/src/cbor_cursor_tests.cpp
71+
cbor/src/cbor_event_reader_tests.cpp
72+
cbor/src/cbor_encoder_tests.cpp
73+
cbor/src/cbor_event_visitor_tests.cpp
74+
cbor/src/cbor_reader_tests.cpp
75+
cbor/src/cbor_tests.cpp
76+
cbor/src/cbor_typed_array_tests.cpp
77+
cbor/src/decode_cbor_tests.cpp
78+
cbor/src/encode_cbor_tests.cpp
79+
csv/src/csv_reader_tests.cpp
80+
csv/src/csv_cursor_tests.cpp
81+
csv/src/csv_subfield_tests.cpp
82+
csv/src/csv_tests.cpp
83+
csv/src/encode_decode_csv_tests.cpp
84+
jmespath/src/jmespath_custom_function_tests.cpp
85+
jmespath/src/jmespath_expression_tests.cpp
86+
jmespath/src/jmespath_let_tests.cpp
87+
jmespath/src/jmespath_tests.cpp
88+
mergepatch/src/mergepatch_test_suite.cpp
89+
jsonpatch/src/jsonpatch_test_suite.cpp
90+
jsonpatch/src/jsonpatch_tests.cpp
91+
jsonpath/src/jsonpath_flatten_tests.cpp
92+
jsonpath/src/jsonpath_function_tests.cpp
93+
jsonpath/src/path_node_tests.cpp
94+
jsonpath/src/json_location_tests.cpp
95+
jsonpath/src/json_location_parser_tests.cpp
96+
jsonpath/src/jsonpath_custom_function_tests.cpp
97+
jsonpath/src/jsonpath_json_query_tests.cpp
98+
jsonpath/src/jsonpath_expression_tests.cpp
99+
jsonpath/src/jsonpath_json_replace_tests.cpp
100+
jsonpath/src/jsonpath_select_paths_tests.cpp
101+
jsonpath/src/jsonpath_test_suite.cpp
102+
jsonpath/src/jsonpath_stateful_allocator_tests.cpp
103+
jsonpointer/src/jsonpointer_flatten_tests.cpp
104+
jsonpointer/src/jsonpointer_tests.cpp
105+
jsonschema/src/abort_early_tests.cpp
106+
jsonschema/src/custom_message_tests.cpp
107+
jsonschema/src/json_schema_walk_tests.cpp
108+
jsonschema/src/format_validator_tests.cpp
109+
jsonschema/src/validation_report_tests.cpp
110+
jsonschema/src/dynamic_ref_tests.cpp
111+
jsonschema/src/jsonschema_defaults_tests.cpp
112+
jsonschema/src/jsonschema_draft4_tests.cpp
113+
jsonschema/src/jsonschema_draft6_tests.cpp
114+
jsonschema/src/jsonschema_draft7_tests.cpp
115+
jsonschema/src/jsonschema_draft201909_tests.cpp
116+
jsonschema/src/jsonschema_draft202012_tests.cpp
117+
jsonschema/src/schema_version_tests.cpp
118+
msgpack/src/decode_msgpack_tests.cpp
119+
msgpack/src/encode_msgpack_tests.cpp
120+
msgpack/src/msgpack_bitset_traits_tests.cpp
121+
msgpack/src/msgpack_cursor_tests.cpp
122+
msgpack/src/msgpack_event_reader_tests.cpp
123+
msgpack/src/msgpack_encoder_tests.cpp
124+
msgpack/src/msgpack_tests.cpp
125+
msgpack/src/msgpack_timestamp_tests.cpp
126+
corelib/src/source_adaptor_tests.cpp
127+
corelib/src/value_converter_tests.cpp
128+
corelib/src/decode_traits_tests.cpp
129+
corelib/src/detail/optional_tests.cpp
130+
corelib/src/detail/span_tests.cpp
131+
corelib/src/detail/string_view_tests.cpp
132+
corelib/src/utility/byte_string_tests.cpp
133+
corelib/src/utility/heap_string_tests.cpp
134+
corelib/src/utility/bigint_tests.cpp
135+
corelib/src/utility/uri_tests.cpp
136+
corelib/src/utility/extension_traits_tests.cpp
137+
corelib/src/utility/unicode_conv_tests.cpp
138+
corelib/src/detail/to_integer_tests.cpp
139+
corelib/src/double_round_trip_tests.cpp
140+
corelib/src/double_to_string_tests.cpp
141+
corelib/src/dtoa_tests.cpp
142+
corelib/src/encode_decode_json_tests.cpp
143+
corelib/src/encode_traits_tests.cpp
144+
corelib/src/json_parser_recovery_tests.cpp
145+
corelib/src/json_array_tests.cpp
146+
corelib/src/json_as_tests.cpp
147+
corelib/src/json_bitset_traits_tests.cpp
148+
corelib/src/json_checker_tests.cpp
149+
corelib/src/json_compare_tests.cpp
150+
corelib/src/json_const_pointer_arg_tests.cpp
151+
corelib/src/json_pointer_arg_tests.cpp
152+
corelib/src/json_assignment_tests.cpp
153+
corelib/src/json_constructor_tests.cpp
154+
corelib/src/json_cursor_tests.cpp
155+
corelib/src/json_encoder_tests.cpp
156+
corelib/src/json_exception_tests.cpp
157+
corelib/src/json_filter_tests.cpp
158+
corelib/src/json_in_place_update_tests.cpp
159+
corelib/src/json_integer_tests.cpp
160+
corelib/src/json_less_tests.cpp
161+
corelib/src/json_line_split_tests.cpp
162+
corelib/src/json_literal_operator_tests.cpp
163+
corelib/src/json_object_tests.cpp
164+
corelib/src/ojson_object_tests.cpp
165+
corelib/src/json_options_tests.cpp
166+
corelib/src/json_parser_error_tests.cpp
167+
corelib/src/json_parser_position_tests.cpp
168+
corelib/src/json_parser_tests.cpp
169+
corelib/src/json_push_back_tests.cpp
170+
corelib/src/json_reader_exception_tests.cpp
171+
corelib/src/json_reader_tests.cpp
172+
corelib/src/json_storage_tests.cpp
173+
corelib/src/json_swap_tests.cpp
174+
corelib/src/json_traits_macro_functional_tests.cpp
175+
corelib/src/json_traits_macro_tests.cpp
176+
corelib/src/json_traits_macro_limit_tests.cpp
177+
corelib/src/json_traits_name_macro_tests.cpp
178178
corelib/src/json_type_traits_chrono_tests.cpp
179-
#corelib/src/json_type_traits_container_tests.cpp
180-
#corelib/src/json_type_traits_tests.cpp
181-
#corelib/src/json_validation_tests.cpp
182-
#corelib/src/jsoncons_tests.cpp
183-
#corelib/src/JSONTestSuite_tests.cpp
184-
#corelib/src/ojson_tests.cpp
185-
#corelib/src/parse_string_tests.cpp
186-
#corelib/src/short_string_tests.cpp
187-
#corelib/src/source_tests.cpp
188-
#corelib/src/staj_iterator_tests.cpp
189-
#corelib/src/polymorphic_allocator_tests.cpp
190-
#corelib/src/scoped_allocator_adaptor_tests.cpp
191-
#corelib/src/string_to_double_tests.cpp
192-
#corelib/src/wjson_tests.cpp
193-
#ubjson/src/decode_ubjson_tests.cpp
194-
#ubjson/src/encode_ubjson_tests.cpp
195-
#ubjson/src/ubjson_cursor_tests.cpp
196-
#ubjson/src/ubjson_encoder_tests.cpp
179+
corelib/src/json_type_traits_container_tests.cpp
180+
corelib/src/json_type_traits_tests.cpp
181+
corelib/src/json_validation_tests.cpp
182+
corelib/src/jsoncons_tests.cpp
183+
corelib/src/JSONTestSuite_tests.cpp
184+
corelib/src/ojson_tests.cpp
185+
corelib/src/parse_string_tests.cpp
186+
corelib/src/short_string_tests.cpp
187+
corelib/src/source_tests.cpp
188+
corelib/src/staj_iterator_tests.cpp
189+
corelib/src/polymorphic_allocator_tests.cpp
190+
corelib/src/scoped_allocator_adaptor_tests.cpp
191+
corelib/src/string_to_double_tests.cpp
192+
corelib/src/wjson_tests.cpp
193+
ubjson/src/decode_ubjson_tests.cpp
194+
ubjson/src/encode_ubjson_tests.cpp
195+
ubjson/src/ubjson_cursor_tests.cpp
196+
ubjson/src/ubjson_encoder_tests.cpp
197197
corelib/src/testmain.cpp
198198
)
199199

test/corelib/src/json_cursor_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ TEST_CASE("staj event as object")
578578
cursor.next();
579579
CHECK(cursor.done());
580580
}
581-
SECTION("test 2")
581+
SECTION("test read_to")
582582
{
583583
json document = json::parse(buffer);
584584

0 commit comments

Comments
 (0)