Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
fuzz_bson_parser_max /src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp 154 103 6 15 680 367 fuzz_bson_parser_max.cpp
fuzz_ubjson_parser_max /src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp 157 102 7 13 669 404 fuzz_ubjson_parser_max.cpp
fuzz_ubjson_encoder /src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp 160 132 7 15 677 409 fuzz_ubjson_encoder.cpp
fuzz_bson_encoder /src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp 157 151 6 17 688 372 fuzz_bson_encoder.cpp
fuzz_msgpack_parser_max /src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp 215 269 8 15 796 454 fuzz_msgpack_parser_max.cpp
fuzz_msgpack_encoder /src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp 224 320 8 17 810 465 fuzz_msgpack_encoder.cpp
fuzz_bson /src/jsoncons/./fuzzers/fuzz_bson.cpp 291 850 8 20 903 565 fuzz_bson.cpp
fuzz_ubjson /src/jsoncons/./fuzzers/fuzz_ubjson.cpp 294 849 9 18 892 602 fuzz_ubjson.cpp
fuzz_cbor_parser_max /src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp 333 275 8 19 1857 880 fuzz_cbor_parser_max.cpp
fuzz_msgpack /src/jsoncons/./fuzzers/fuzz_msgpack.cpp 358 1009 10 20 1026 658 fuzz_msgpack.cpp
fuzz_cbor_encoder /src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp 354 377 8 21 1925 922 fuzz_cbor_encoder.cpp
fuzz_cbor /src/jsoncons/./fuzzers/fuzz_cbor.cpp 484 1018 10 24 2094 1095 fuzz_cbor.cpp
fuzz_json_parser_max /src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp 244 115 9 15 2009 669 fuzz_json_parser_max.cpp
fuzz_json_cursor /src/jsoncons/./fuzzers/fuzz_json_cursor.cpp 355 196 10 22 2615 1007 fuzz_json_cursor.cpp
fuzz_json_encoder /src/jsoncons/./fuzzers/fuzz_json_encoder.cpp 270 289 9 18 2099 737 fuzz_json_encoder.cpp
fuzz_parse /src/jsoncons/./fuzzers/fuzz_parse.cpp 319 800 9 13 2015 739 fuzz_parse.cpp
fuzz_csv_encoder /src/jsoncons/./fuzzers/fuzz_csv_encoder.cpp 403 251 13 21 3351 1388 fuzz_csv_encoder.cpp
fuzz_csv /src/jsoncons/./fuzzers/fuzz_csv.cpp 441 902 14 20 3341 1404 fuzz_csv.cpp

Fuzzer details

Fuzzer: fuzz_bson_parser_max

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 19 13.7%
gold [1:9] 3 2.17%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 116 84.0%
All colors 138 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:220
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:220
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:220
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:220
0 0 None 0 0 jsoncons::stream_source ::read(unsignedchar*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/source.hpp:250
0 0 None 0 0 jsoncons::bson::basic_bson_parser ,std::__1::allocator >::begin_array(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp:271

Runtime coverage analysis

Covered functions
83
Functions that are reachable but not covered
32
Reachable functions
154
Percentage of reachable functions covered
79.22%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 17
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 8
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 12
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 12
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 4
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/byte_string.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5

Fuzzer: fuzz_ubjson_parser_max

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 21 13.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 139 86.8%
All colors 160 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
10 10 7 :

['__cxa_begin_catch', 'std::__1::basic_streambuf >::sgetn(char*, long)', 'std::__1::basic_ios >::clear(unsigned int)', 'std::__1::basic_ios >::eof() const', 'std::__1::basic_ios >::rdstate() const', '__cxa_end_catch', '__clang_call_terminate']

10 10 jsoncons::stream_source ::read(unsignedchar*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/source.hpp:234
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 jsoncons::ubjson::basic_ubjson_parser ,std::__1::allocator >::parse(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp:169
0 0 None 0 0 jsoncons::ubjson::basic_ubjson_parser ,std::__1::allocator >::parse(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp:176
0 0 None 0 0 jsoncons::ubjson::basic_ubjson_parser ,std::__1::allocator >::parse(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp:259
0 0 None 0 0 jsoncons::ubjson::basic_ubjson_parser ,std::__1::allocator >::parse(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp:266
0 0 None 0 0 jsoncons::ubjson::basic_ubjson_parser ,std::__1::allocator >::read_type_and_value(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp:316

Runtime coverage analysis

Covered functions
87
Functions that are reachable but not covered
32
Reachable functions
157
Percentage of reachable functions covered
79.62%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 9
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 12
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 13
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 6
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 1
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1

Fuzzer: fuzz_ubjson_encoder

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 25 15.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 141 84.9%
All colors 166 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
21 21 7 :

['__cxa_allocate_exception', 'std::__1::numeric_limits ::max()', '__cxa_throw', 'jsoncons::ser_error::ser_error(std::__1::error_code)', '__cxa_free_exception', 'std::__1::enable_if ::type jsoncons::binary::native_to_big >, void> >, jsoncons::detail::endian>(unsigned long, std::__1::back_insert_iterator >, void> >)', '_ZNSt3__110error_codeC2IN8jsoncons6ubjson11ubjson_errcEEET_PNS_9enable_ifIXsr18is_error_code_enumIS5_EE5valueEvE4typeE']

21 23 jsoncons::ubjson::basic_ubjson_encoder >,void>,std::__1::allocator >::put_length(unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp:313
10 10 7 :

['__cxa_begin_catch', 'std::__1::basic_streambuf >::sgetn(char*, long)', 'std::__1::basic_ios >::clear(unsigned int)', 'std::__1::basic_ios >::eof() const', 'std::__1::basic_ios >::rdstate() const', '__cxa_end_catch', '__clang_call_terminate']

10 10 jsoncons::stream_source ::read(unsignedchar*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/source.hpp:234
0 15 6 :

['std::__1::numeric_limits ::max()', 'std::__1::enable_if ::type jsoncons::binary::native_to_big >, void> >, jsoncons::detail::endian>(int, std::__1::back_insert_iterator >, void> >)', 'std::__1::enable_if ::type jsoncons::binary::native_to_big >, void> >, jsoncons::detail::endian>(long, std::__1::back_insert_iterator >, void> >)', 'std::__1::numeric_limits ::max()', 'std::__1::numeric_limits ::max()', 'std::__1::enable_if ::type jsoncons::binary::native_to_big >, void> >, jsoncons::detail::endian>(short, std::__1::back_insert_iterator >, void> >)']

0 24 jsoncons::ubjson::basic_ubjson_encoder >,void>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp:447
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 1 :

['_ZNSt3__110error_codeaSIN8jsoncons6ubjson11ubjson_errcEEENS_9enable_ifIXsr18is_error_code_enumIT_EE5valueERS0_E4typeES6_']

0 0 jsoncons::ubjson::basic_ubjson_encoder >,void>,std::__1::allocator >::visit_key(jsoncons::detail::basic_string_view >const&,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp:243
0 0 None 0 0 jsoncons::ubjson::basic_ubjson_parser ,std::__1::allocator >::parse(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp:169
0 0 None 0 0 jsoncons::ubjson::basic_ubjson_parser ,std::__1::allocator >::parse(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp:176

Runtime coverage analysis

Covered functions
113
Functions that are reachable but not covered
28
Reachable functions
160
Percentage of reachable functions covered
82.5%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 10
/src/jsoncons/./include/jsoncons/json_visitor.hpp 16
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 12
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 13
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 6
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 1
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1

Fuzzer: fuzz_bson_encoder

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 23 15.9%
gold [1:9] 3 2.08%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 118 81.9%
All colors 144 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
10 10 4 :

['__cxa_throw', 'std::out_of_range::out_of_range(char const*)', '__cxa_allocate_exception', '__cxa_free_exception']

10 10 jsoncons::detail::basic_string_view >::substr(unsignedlong,unsignedlong)const call site: 00000 /src/jsoncons/./include/jsoncons/detail/string_view.hpp:165
0 0 None 4 52 jsoncons::detail::basic_string_view >::find_last_of(jsoncons::detail::basic_string_view >,unsignedlong)const call site: 00000 /src/jsoncons/./include/jsoncons/detail/string_view.hpp:291
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:430
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:505
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:505
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:505
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:505
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:505
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:505
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:505
0 0 None 0 32 _ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:505
0 0 None 0 23 jsoncons::bson::decimal128_from_chars(charconst*,charconst*,jsoncons::bson::TP1&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp:753

Runtime coverage analysis

Covered functions
134
Functions that are reachable but not covered
28
Reachable functions
157
Percentage of reachable functions covered
82.17%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 9
/src/jsoncons/./include/jsoncons/json_visitor.hpp 15
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 12
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 12
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 4
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/byte_string.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5

Fuzzer: fuzz_msgpack_parser_max

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 28 13.7%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 175 86.2%
All colors 203 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
68 166 10 :

['jsoncons::operator>(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::data()', 'jsoncons::basic_bigint >::reduce()', 'jsoncons::basic_bigint >::operator=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::is_negative() const', 'jsoncons::basic_bigint >::basic_bigint(jsoncons::basic_bigint > const&)', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::length() const', 'jsoncons::basic_bigint >::data() const', 'jsoncons::operator-(jsoncons::basic_bigint >, jsoncons::basic_bigint > const&)']

68 239 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:600
38 38 1 :

['jsoncons::basic_bigint >::operator>>=(unsigned long)']

38 38 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1557
28 52 3 :

['jsoncons::basic_bigint >::~basic_bigint()', '_ZN8jsoncons12basic_bigintINSt3__19allocatorIhEEEC2ImEET_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE', 'jsoncons::basic_bigint >::operator/=(jsoncons::basic_bigint > const&)']

66 104 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1553
26 26 1 :

['_ZN8jsoncons6detail12from_integerIiNS_11string_sinkINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEEENS3_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESC_RT0_']

26 26 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>>(int,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
8 8 4 :

['std::runtime_error::runtime_error(char const*)', '__cxa_allocate_exception', '__cxa_throw', '__cxa_free_exception']

8 8 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint >,jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,bool)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1352
0 81 3 :

['jsoncons::basic_bigint >::~basic_bigint()', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::operator-() const']

0 81 jsoncons::basic_bigint >::operator+=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:572
0 44 1 :

['jsoncons::basic_bigint >::operator*=(unsigned long)']

0 44 jsoncons::basic_bigint >::normalize(jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,int&)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1542
0 42 2 :

['jsoncons::basic_bigint >::resize(unsigned long)', 'jsoncons::basic_bigint >::length() const']

0 201 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint >,jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,bool)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1406
0 7 1 :

['void jsoncons::detail::dump_buffer , std::__1::allocator > > >(char const*, unsigned long, char, jsoncons::string_sink , std::__1::allocator > >&)']

21 28 unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:537
0 6 1 :

['jsoncons::string_sink , std::__1::allocator > >::push_back(char)']

0 6 booljsoncons::detail::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:321
0 0 None 17 17 _ZN8jsoncons6detail12from_integerImNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS2_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESA_RT0_ call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:46

Runtime coverage analysis

Covered functions
209
Functions that are reachable but not covered
34
Reachable functions
215
Percentage of reachable functions covered
84.19%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 4
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 8
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 10
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 12
/src/jsoncons/./include/jsoncons/item_event_visitor.hpp 17
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 10
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/byte_string.hpp 2
/src/jsoncons/./include/jsoncons/bigint.hpp 23
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1

Fuzzer: fuzz_msgpack_encoder

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 34 16.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 177 83.8%
All colors 211 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
68 166 10 :

['jsoncons::operator>(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::data()', 'jsoncons::basic_bigint >::reduce()', 'jsoncons::basic_bigint >::operator=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::is_negative() const', 'jsoncons::basic_bigint >::basic_bigint(jsoncons::basic_bigint > const&)', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::length() const', 'jsoncons::basic_bigint >::data() const', 'jsoncons::operator-(jsoncons::basic_bigint >, jsoncons::basic_bigint > const&)']

68 239 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:600
38 38 1 :

['jsoncons::basic_bigint >::operator>>=(unsigned long)']

38 38 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1557
28 52 3 :

['jsoncons::basic_bigint >::~basic_bigint()', '_ZN8jsoncons12basic_bigintINSt3__19allocatorIhEEEC2ImEET_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE', 'jsoncons::basic_bigint >::operator/=(jsoncons::basic_bigint > const&)']

66 104 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1553
26 26 1 :

['_ZN8jsoncons6detail12from_integerIiNS_11string_sinkINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEEENS3_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESC_RT0_']

26 26 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>>(int,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
16 16 5 :

['__cxa_allocate_exception', '__cxa_throw', 'jsoncons::ser_error::ser_error(std::__1::error_code)', '_ZNSt3__110error_codeC2IN8jsoncons7msgpack12msgpack_errcEEET_PNS_9enable_ifIXsr18is_error_code_enumIS5_EE5valueEvE4typeE', '__cxa_free_exception']

16 16 jsoncons::msgpack::basic_msgpack_encoder >,void>,std::__1::allocator >::write_string_value(jsoncons::detail::basic_string_view >const&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_encoder.hpp:356
8 8 4 :

['std::runtime_error::runtime_error(char const*)', '__cxa_allocate_exception', '__cxa_throw', '__cxa_free_exception']

8 8 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint >,jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,bool)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1352
0 81 3 :

['jsoncons::basic_bigint >::~basic_bigint()', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::operator-() const']

0 81 jsoncons::basic_bigint >::operator+=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:572
0 44 1 :

['jsoncons::basic_bigint >::operator*=(unsigned long)']

0 44 jsoncons::basic_bigint >::normalize(jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,int&)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1542
0 42 2 :

['jsoncons::basic_bigint >::resize(unsigned long)', 'jsoncons::basic_bigint >::length() const']

0 201 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint >,jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,bool)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1406
0 7 1 :

['void jsoncons::detail::dump_buffer , std::__1::allocator > > >(char const*, unsigned long, char, jsoncons::string_sink , std::__1::allocator > >&)']

21 28 unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:537
0 6 1 :

['jsoncons::string_sink , std::__1::allocator > >::push_back(char)']

0 6 booljsoncons::detail::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:321

Runtime coverage analysis

Covered functions
238
Functions that are reachable but not covered
32
Reachable functions
224
Percentage of reachable functions covered
85.71%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 9
/src/jsoncons/./include/jsoncons/json_visitor.hpp 4
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 10
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 12
/src/jsoncons/./include/jsoncons/item_event_visitor.hpp 17
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 10
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/byte_string.hpp 2
/src/jsoncons/./include/jsoncons/bigint.hpp 23
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1

Fuzzer: fuzz_bson

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 38 19.0%
gold [1:9] 0 0.0%
yellow [10:29] 3 1.50%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 158 79.3%
All colors 199 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 1279 3 :

['jsoncons::basic_json >::swap(jsoncons::basic_json >&)', 'std::__1::vector > >, std::__1::allocator > > > >::pop_back()', 'std::__1::vector > >, std::__1::allocator > > > >::front()']

0 1279 jsoncons::json_decoder >,std::__1::allocator >::visit_end_array(jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_decoder.hpp:219
0 0 None 114 254 _ZN8jsoncons4bson11decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr16extension_traits13is_basic_jsonIT_EE5valueES9_E4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00155 /src/jsoncons/./include/jsoncons_ext/bson/decode_bson.hpp:68
0 0 None 0 0 jsoncons::detail::random_access_iterator_wrapper ,std::__1::allocator >,jsoncons::basic_json >>*>,void>::operator==(jsoncons::detail::random_access_iterator_wrapper ,std::__1::allocator >,jsoncons::basic_json >>*>,void>const&)const call site: 00000 /src/jsoncons/./include/jsoncons/basic_json.hpp:202
0 0 None 0 0 jsoncons::basic_json >::swap(jsoncons::basic_json >&) call site: 00000 /src/jsoncons/./include/jsoncons/basic_json.hpp:3158
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:220
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:220
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:220
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:220
0 0 None 0 0 jsoncons::stream_source ::read(unsignedchar*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/source.hpp:250
0 0 None 0 0 jsoncons::bson::basic_bson_parser ,std::__1::allocator >::begin_array(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp:271

Runtime coverage analysis

Covered functions
360
Functions that are reachable but not covered
61
Reachable functions
291
Percentage of reachable functions covered
79.04%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_bson.cpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/bson/decode_bson.hpp 1
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 15
/src/jsoncons/./include/jsoncons/basic_json.hpp 32
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 12
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 4
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/byte_string.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5
/src/jsoncons/./include/jsoncons/json_exception.hpp 3

Fuzzer: fuzz_ubjson

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 43 19.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 2 0.90%
lawngreen 50+ 177 79.7%
All colors 222 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
10 10 7 :

['__cxa_begin_catch', 'std::__1::basic_streambuf >::sgetn(char*, long)', 'std::__1::basic_ios >::clear(unsigned int)', 'std::__1::basic_ios >::eof() const', 'std::__1::basic_ios >::rdstate() const', '__cxa_end_catch', '__clang_call_terminate']

10 10 jsoncons::stream_source ::read(unsignedchar*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/source.hpp:234
0 0 None 114 254 _ZN8jsoncons6ubjson13decode_ubjsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr16extension_traits13is_basic_jsonIT_EE5valueES9_E4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_21ubjson_decode_optionsE call site: 00177 /src/jsoncons/./include/jsoncons_ext/ubjson/decode_ubjson.hpp:68
0 0 None 0 0 jsoncons::detail::random_access_iterator_wrapper ,std::__1::allocator >,jsoncons::basic_json >>*>,void>::operator==(jsoncons::detail::random_access_iterator_wrapper ,std::__1::allocator >,jsoncons::basic_json >>*>,void>const&)const call site: 00000 /src/jsoncons/./include/jsoncons/basic_json.hpp:202
0 0 None 0 0 jsoncons::basic_json >::swap(jsoncons::basic_json >&) call site: 00000 /src/jsoncons/./include/jsoncons/basic_json.hpp:3158
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::big_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp:205
0 0 None 0 0 _ZN8jsoncons14unicode_traits8validateIcEENSt3__19enable_ifIXsr16extension_traits8is_char8IT_EE5valueENS0_14convert_resultIS4_EEE4typeEPKS4_m call site: 00079 /src/jsoncons/./include/jsoncons/unicode_traits.hpp:1136
0 0 None 0 0 _ZN8jsoncons14unicode_traits13is_legal_utf8IcEENSt3__19enable_ifIXsr16extension_traits8is_char8IT_EE5valueENS0_9conv_errcEE4typeEPKS4_m call site: 00080 /src/jsoncons/./include/jsoncons/unicode_traits.hpp:333

Runtime coverage analysis

Covered functions
328
Functions that are reachable but not covered
69
Reachable functions
294
Percentage of reachable functions covered
76.53%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_ubjson.cpp 1
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 7
/src/jsoncons/./include/jsoncons_ext/ubjson/decode_ubjson.hpp 1
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 16
/src/jsoncons/./include/jsoncons/basic_json.hpp 32
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 13
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 6
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 1
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 3

Fuzzer: fuzz_cbor_parser_max

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 32 7.94%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 371 92.0%
All colors 403 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
28 52 3 :

['jsoncons::basic_bigint >::~basic_bigint()', '_ZN8jsoncons12basic_bigintINSt3__19allocatorIhEEEC2ImEET_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE', 'jsoncons::basic_bigint >::operator/=(jsoncons::basic_bigint > const&)']

28 104 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1553
26 26 1 :

['_ZN8jsoncons6detail12from_integerIiNS_11string_sinkINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEEENS3_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESC_RT0_']

26 26 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>>(int,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
22 166 10 :

['jsoncons::operator>(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::data()', 'jsoncons::basic_bigint >::reduce()', 'jsoncons::basic_bigint >::operator=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::is_negative() const', 'jsoncons::basic_bigint >::basic_bigint(jsoncons::basic_bigint > const&)', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::length() const', 'jsoncons::basic_bigint >::data() const', 'jsoncons::operator-(jsoncons::basic_bigint >, jsoncons::basic_bigint > const&)']

22 239 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:600
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
8 8 4 :

['std::runtime_error::runtime_error(char const*)', '__cxa_allocate_exception', '__cxa_throw', '__cxa_free_exception']

8 8 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint >,jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,bool)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1352
0 81 3 :

['jsoncons::basic_bigint >::~basic_bigint()', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::operator-() const']

0 81 jsoncons::basic_bigint >::operator+=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:572
0 44 1 :

['jsoncons::basic_bigint >::operator*=(unsigned long)']

0 44 jsoncons::basic_bigint >::normalize(jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,int&)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1542
0 19 1 :

['jsoncons::basic_bigint >::resize(unsigned long)']

0 78 jsoncons::basic_bigint >::operator>>=(unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:768
0 7 1 :

['void jsoncons::detail::dump_buffer , std::__1::allocator > > >(char const*, unsigned long, char, jsoncons::string_sink , std::__1::allocator > >&)']

21 28 unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:537
0 6 1 :

['jsoncons::string_sink , std::__1::allocator > >::push_back(char)']

0 6 booljsoncons::detail::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:321
0 0 None 17 19 _ZN8jsoncons6detail21integer_to_string_hexImNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS2_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESA_RT0_ call site: 00311 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:93
0 0 None 17 17 _ZN8jsoncons6detail12from_integerImNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS2_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESA_RT0_ call site: 00266 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:46

Runtime coverage analysis

Covered functions
359
Functions that are reachable but not covered
40
Reachable functions
333
Percentage of reachable functions covered
87.99%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 4
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 8
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 36
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 13
/src/jsoncons/./include/jsoncons/item_event_visitor.hpp 33
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 5
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 8
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/byte_string.hpp 4
/src/jsoncons/./include/jsoncons/bigint.hpp 21
/usr/local/bin/../include/c++/v1/math.h 1
/src/jsoncons/./include/jsoncons/detail/span.hpp 11
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 7

Fuzzer: fuzz_msgpack

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 50 18.7%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 217 81.2%
All colors 267 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
68 166 10 :

['jsoncons::operator>(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::data()', 'jsoncons::basic_bigint >::reduce()', 'jsoncons::basic_bigint >::operator=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::is_negative() const', 'jsoncons::basic_bigint >::basic_bigint(jsoncons::basic_bigint > const&)', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::length() const', 'jsoncons::basic_bigint >::data() const', 'jsoncons::operator-(jsoncons::basic_bigint >, jsoncons::basic_bigint > const&)']

68 239 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:600
38 38 1 :

['jsoncons::basic_bigint >::operator>>=(unsigned long)']

38 38 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1557
28 52 3 :

['jsoncons::basic_bigint >::~basic_bigint()', '_ZN8jsoncons12basic_bigintINSt3__19allocatorIhEEEC2ImEET_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE', 'jsoncons::basic_bigint >::operator/=(jsoncons::basic_bigint > const&)']

66 104 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1553
26 26 1 :

['_ZN8jsoncons6detail12from_integerIiNS_11string_sinkINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEEENS3_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESC_RT0_']

26 26 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>>(int,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
8 8 4 :

['std::runtime_error::runtime_error(char const*)', '__cxa_allocate_exception', '__cxa_throw', '__cxa_free_exception']

8 8 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint >,jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,bool)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1352
0 81 3 :

['jsoncons::basic_bigint >::~basic_bigint()', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::operator-() const']

0 81 jsoncons::basic_bigint >::operator+=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:572
0 44 1 :

['jsoncons::basic_bigint >::operator*=(unsigned long)']

0 44 jsoncons::basic_bigint >::normalize(jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,int&)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1542
0 42 2 :

['jsoncons::basic_bigint >::resize(unsigned long)', 'jsoncons::basic_bigint >::length() const']

0 201 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint >,jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,bool)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1406
0 7 1 :

['void jsoncons::detail::dump_buffer , std::__1::allocator > > >(char const*, unsigned long, char, jsoncons::string_sink , std::__1::allocator > >&)']

21 28 unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:537
0 6 1 :

['jsoncons::string_sink , std::__1::allocator > >::push_back(char)']

0 6 booljsoncons::detail::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:321
0 0 None 118 258 _ZN8jsoncons7msgpack14decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr16extension_traits13is_basic_jsonIT_EE5valueES9_E4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_22msgpack_decode_optionsE call site: 00222 /src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp:69

Runtime coverage analysis

Covered functions
493
Functions that are reachable but not covered
65
Reachable functions
358
Percentage of reachable functions covered
81.84%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack.cpp 1
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp 1
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 4
/src/jsoncons/./include/jsoncons/basic_json.hpp 32
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 11
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 12
/src/jsoncons/./include/jsoncons/item_event_visitor.hpp 17
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 10
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/byte_string.hpp 2
/src/jsoncons/./include/jsoncons/bigint.hpp 23
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 3

Fuzzer: fuzz_cbor_encoder

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 38 8.94%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 387 91.0%
All colors 425 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
28 52 3 :

['jsoncons::basic_bigint >::~basic_bigint()', '_ZN8jsoncons12basic_bigintINSt3__19allocatorIhEEEC2ImEET_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE', 'jsoncons::basic_bigint >::operator/=(jsoncons::basic_bigint > const&)']

28 104 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1553
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , unsigned short, jsoncons::semantic_tag)', 'std::__1::vector >::vector(unsigned long)', 'jsoncons::detail::span ::data() const', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1280
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , unsigned int, jsoncons::semantic_tag)', 'std::__1::vector >::vector(unsigned long)', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', 'jsoncons::detail::span ::data() const', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1310
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , unsigned long, jsoncons::semantic_tag)', 'std::__1::vector >::vector(unsigned long)', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', 'jsoncons::detail::span ::data() const', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1340
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'std::__1::vector >::vector(unsigned long)', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , short, jsoncons::semantic_tag)', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', 'jsoncons::detail::span ::data() const', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1398
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'std::__1::vector >::vector(unsigned long)', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', 'jsoncons::detail::span ::data() const', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , int, jsoncons::semantic_tag)', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1428
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'jsoncons::detail::span ::data() const', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , long, jsoncons::semantic_tag)', 'std::__1::vector >::vector(unsigned long)', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1458
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , jsoncons::half_arg_t, jsoncons::semantic_tag)', 'std::__1::vector >::vector(unsigned long)', 'jsoncons::detail::span ::data() const', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::half_arg_t,jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1488
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'jsoncons::detail::span ::data() const', 'std::__1::vector >::vector(unsigned long)', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , float, jsoncons::semantic_tag)', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1518
27 62 7 :

['jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_byte_string_value(jsoncons::byte_string_view const&)', 'std::__1::vector >::vector(unsigned long)', 'std::__1::vector >::~vector()', 'std::__1::vector >::data()', 'jsoncons::detail::span ::data() const', 'jsoncons::cbor::basic_cbor_encoder >, void>, std::__1::allocator >::write_typed_array_tag(std::__1::integral_constant , double, jsoncons::semantic_tag)', '_ZN8jsoncons16byte_string_viewC2INSt3__16vectorIhNS2_9allocatorIhEEEEEERKT_NS2_9enable_ifIXsr16extension_traits16is_byte_sequenceIS7_EE5valueEiE4typeE']

27 66 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_typed_array(jsoncons::detail::span const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:1548
26 26 1 :

['_ZN8jsoncons6detail12from_integerIiNS_11string_sinkINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEEENS3_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESC_RT0_']

26 26 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>>(int,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
21 37 6 :

['__cxa_allocate_exception', '__cxa_throw', 'jsoncons::detail::to_integer_result ::error_code() const', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_free_exception', 'std::__1::error_code::message() const']

21 37 jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::write_hexfloat_value(jsoncons::detail::basic_string_view >const&,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp:798

Runtime coverage analysis

Covered functions
410
Functions that are reachable but not covered
38
Reachable functions
354
Percentage of reachable functions covered
89.27%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp 4
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 10
/src/jsoncons/./include/jsoncons/json_visitor.hpp 4
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 8
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 8
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 36
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 13
/src/jsoncons/./include/jsoncons/item_event_visitor.hpp 33
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/byte_string.hpp 4
/src/jsoncons/./include/jsoncons/bigint.hpp 21
/usr/local/bin/../include/c++/v1/math.h 1
/src/jsoncons/./include/jsoncons/detail/span.hpp 11
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 7

Fuzzer: fuzz_cbor

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 52 11.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 419 88.9%
All colors 471 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
28 52 3 :

['jsoncons::basic_bigint >::~basic_bigint()', '_ZN8jsoncons12basic_bigintINSt3__19allocatorIhEEEC2ImEET_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE', 'jsoncons::basic_bigint >::operator/=(jsoncons::basic_bigint > const&)']

28 104 jsoncons::basic_bigint >::unnormalize(jsoncons::basic_bigint >&,int,int)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1553
26 26 1 :

['_ZN8jsoncons6detail12from_integerIiNS_11string_sinkINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEEENS3_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESC_RT0_']

26 26 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>>(int,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
22 166 10 :

['jsoncons::operator>(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::data()', 'jsoncons::basic_bigint >::reduce()', 'jsoncons::basic_bigint >::operator=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::is_negative() const', 'jsoncons::basic_bigint >::basic_bigint(jsoncons::basic_bigint > const&)', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::length() const', 'jsoncons::basic_bigint >::data() const', 'jsoncons::operator-(jsoncons::basic_bigint >, jsoncons::basic_bigint > const&)']

22 239 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:600
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00000 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
8 8 4 :

['std::runtime_error::runtime_error(char const*)', '__cxa_allocate_exception', '__cxa_throw', '__cxa_free_exception']

8 8 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint >,jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,bool)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1352
0 81 3 :

['jsoncons::basic_bigint >::~basic_bigint()', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::operator-() const']

0 81 jsoncons::basic_bigint >::operator+=(jsoncons::basic_bigint >const&) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:572
0 44 1 :

['jsoncons::basic_bigint >::operator*=(unsigned long)']

0 44 jsoncons::basic_bigint >::normalize(jsoncons::basic_bigint >&,jsoncons::basic_bigint >&,int&)const call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:1542
0 19 1 :

['jsoncons::basic_bigint >::resize(unsigned long)']

0 78 jsoncons::basic_bigint >::operator>>=(unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/bigint.hpp:768
0 7 1 :

['void jsoncons::detail::dump_buffer , std::__1::allocator > > >(char const*, unsigned long, char, jsoncons::string_sink , std::__1::allocator > >&)']

21 28 unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:537
0 6 1 :

['jsoncons::string_sink , std::__1::allocator > >::push_back(char)']

0 6 booljsoncons::detail::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:321
0 0 None 118 258 _ZN8jsoncons4cbor11decode_cborINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr16extension_traits13is_basic_jsonIT_EE5valueES9_E4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19cbor_decode_optionsE call site: 00422 /src/jsoncons/./include/jsoncons_ext/cbor/decode_cbor.hpp:70
0 0 None 17 19 _ZN8jsoncons6detail21integer_to_string_hexImNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS2_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESA_RT0_ call site: 00331 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:93

Runtime coverage analysis

Covered functions
677
Functions that are reachable but not covered
72
Reachable functions
484
Percentage of reachable functions covered
85.12%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor.cpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/cbor/decode_cbor.hpp 1
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 4
/src/jsoncons/./include/jsoncons/basic_json.hpp 32
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 37
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 13
/src/jsoncons/./include/jsoncons/item_event_visitor.hpp 33
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 5
/src/jsoncons/./include/jsoncons/config/binary_config.hpp 8
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/byte_string.hpp 4
/src/jsoncons/./include/jsoncons/bigint.hpp 21
/usr/local/bin/../include/c++/v1/math.h 1
/src/jsoncons/./include/jsoncons/detail/span.hpp 11
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 7
/src/jsoncons/./include/jsoncons/json_exception.hpp 5

Fuzzer: fuzz_json_parser_max

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 55 16.5%
gold [1:9] 3 0.90%
yellow [10:29] 5 1.50%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 269 81.0%
All colors 332 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00112 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
7 7 2 :

['nan', 'jsoncons::basic_json_options_common ::nan_to_str() const']

20 26 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:185
5 5 1 :

['jsoncons::basic_json_options_common ::inf_to_str() const']

13 17 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:189
0 4 2 :

['jsoncons::basic_json_visitor ::string_value(jsoncons::detail::basic_string_view > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)']

10 49 jsoncons::basic_json_parser >::end_fraction_value(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:2686
0 2 2 :

['std::__1::__wrap_iter , std::__1::allocator >, double>*>::operator->() const', 'jsoncons::basic_json_visitor ::double_value(double, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)']

0 2 jsoncons::basic_json_parser >::end_string_value(charconst*,unsignedlong,jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:2731
0 2 2 :

['std::__1::__wrap_iter , std::__1::allocator >, double>*>::operator->() const', 'jsoncons::basic_json_visitor ::double_value(double, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)']

0 2 jsoncons::basic_json_parser >::end_string_value(charconst*,unsignedlong,jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:2745
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:632
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:749
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:829
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:877
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:887
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:904

Runtime coverage analysis

Covered functions
119
Functions that are reachable but not covered
50
Reachable functions
244
Percentage of reachable functions covered
79.51%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 16
/src/jsoncons/./include/jsoncons/json_options.hpp 18
/src/jsoncons/./include/jsoncons/json_reader.hpp 7
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 5
/src/jsoncons/./include/jsoncons/source.hpp 10
/src/jsoncons/./include/jsoncons/json_parser.hpp 34
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 10
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 7
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/json_exception.hpp 2
/usr/local/bin/../include/c++/v1/stdexcept 1

Fuzzer: fuzz_json_cursor

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 174 39.2%
gold [1:9] 71 16.0%
yellow [10:29] 3 0.67%
greenyellow [30:49] 3 0.67%
lawngreen 50+ 192 43.3%
All colors 443 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
24 24 1 :

['_ZN8jsoncons6detail12from_integerIiNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS2_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESA_RT0_']

24 24 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>(int,std::__1::basic_string ,std::__1::allocator >&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00135 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
17 3549 28 :

['jsoncons::basic_json_parser >::parse_number(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'std::__1::function ::operator()(jsoncons::json_errc, jsoncons::ser_context const&) const', 'jsoncons::basic_json_parser >::begin_member_or_element(std::__1::error_code&)', '__cxa_allocate_exception', 'jsoncons::basic_json_parser >::end_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::bool_value(bool, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', '__cxa_throw', 'jsoncons::basic_json_parser >::parse_string(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::skip_space()', 'jsoncons::basic_json_parser >::parse_true(jsoncons::basic_json_visitor &, std::__1::error_code&)', '__cxa_free_exception', 'jsoncons::assertion_error::assertion_error(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::error_code::operator bool() const', 'jsoncons::basic_json_parser >::end_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::basic_json_parser >::parse_null(jsoncons::basic_json_visitor &, std::__1::error_code&)', '_ZNSt3__110error_codeaSIN8jsoncons9json_errcEEENS_9enable_ifIXsr18is_error_code_enumIT_EE5valueERS0_E4typeES5_', 'jsoncons::basic_json_visitor ::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parent() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::basic_json_parser >::begin_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::flush()', 'std::__1::basic_string , std::__1::allocator >::push_back(char)', 'jsoncons::basic_json_parser >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::push_state(jsoncons::json_parse_state)', 'std::__1::basic_string , std::__1::allocator >::clear()', 'jsoncons::basic_json_parser >::parse_false(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::pop_state()']

17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:783
17 3549 28 :

['jsoncons::basic_json_parser >::parse_number(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'std::__1::function ::operator()(jsoncons::json_errc, jsoncons::ser_context const&) const', 'jsoncons::basic_json_parser >::begin_member_or_element(std::__1::error_code&)', '__cxa_allocate_exception', 'jsoncons::basic_json_parser >::end_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::bool_value(bool, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', '__cxa_throw', 'jsoncons::basic_json_parser >::parse_string(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::skip_space()', 'jsoncons::basic_json_parser >::parse_true(jsoncons::basic_json_visitor &, std::__1::error_code&)', '__cxa_free_exception', 'jsoncons::assertion_error::assertion_error(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::error_code::operator bool() const', 'jsoncons::basic_json_parser >::end_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::basic_json_parser >::parse_null(jsoncons::basic_json_visitor &, std::__1::error_code&)', '_ZNSt3__110error_codeaSIN8jsoncons9json_errcEEENS_9enable_ifIXsr18is_error_code_enumIT_EE5valueERS0_E4typeES5_', 'jsoncons::basic_json_visitor ::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parent() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::basic_json_parser >::begin_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::flush()', 'std::__1::basic_string , std::__1::allocator >::push_back(char)', 'jsoncons::basic_json_parser >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::push_state(jsoncons::json_parse_state)', 'std::__1::basic_string , std::__1::allocator >::clear()', 'jsoncons::basic_json_parser >::parse_false(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::pop_state()']

17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:790
7 7 2 :

['nan', 'jsoncons::basic_json_options_common ::nan_to_str() const']

20 26 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:185
5 5 1 :

['jsoncons::basic_json_options_common ::inf_to_str() const']

13 17 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:189
2 64 3 :

['jsoncons::basic_json_visitor ::end_array(jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parent() const', 'jsoncons::basic_json_parser >::pop_state()']

2 64 jsoncons::basic_json_parser >::end_array(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:407
0 5 1 :

['void jsoncons::detail::dump_buffer , std::__1::allocator > >(char const*, unsigned long, char, std::__1::basic_string , std::__1::allocator >&)']

21 26 unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>(double,std::__1::basic_string ,std::__1::allocator >&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:537
0 4 2 :

['jsoncons::basic_json_visitor ::string_value(jsoncons::detail::basic_string_view > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)']

10 49 jsoncons::basic_json_parser >::end_fraction_value(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:2686
0 2 2 :

['std::__1::__wrap_iter , std::__1::allocator >, double>*>::operator->() const', 'jsoncons::basic_json_visitor ::double_value(double, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)']

0 2 jsoncons::basic_json_parser >::end_string_value(charconst*,unsignedlong,jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:2745
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:632
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:1374

Runtime coverage analysis

Covered functions
158
Functions that are reachable but not covered
99
Reachable functions
355
Percentage of reachable functions covered
72.11%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_json_cursor.cpp 1
/src/jsoncons/./include/jsoncons/json_cursor.hpp 9
/src/jsoncons/./include/jsoncons/json_options.hpp 15
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/staj_cursor.hpp 8
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 4
/src/jsoncons/./include/jsoncons/source.hpp 9
/src/jsoncons/./include/jsoncons/json_parser.hpp 33
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 10
/src/jsoncons/./include/jsoncons/json_visitor.hpp 14
/src/jsoncons/./include/jsoncons/typed_array_view.hpp 1
/src/jsoncons/./include/jsoncons/detail/span.hpp 5
/src/jsoncons/./include/jsoncons/value_converter.hpp 17
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 3
/src/jsoncons/./include/jsoncons/byte_string.hpp 2
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 15
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/usr/local/bin/../include/c++/v1/math.h 2
/src/jsoncons/./include/jsoncons/detail/grisu3.hpp 11
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 7

Fuzzer: fuzz_json_encoder

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 67 18.8%
gold [1:9] 2 0.56%
yellow [10:29] 6 1.69%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 280 78.8%
All colors 355 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
26 26 1 :

['_ZN8jsoncons6detail12from_integerIiNS_11string_sinkINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEEENS3_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESC_RT0_']

26 26 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>>(int,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
21 23 3 :

['jsoncons::basic_json_encoder , std::__1::allocator > >, std::__1::allocator >::new_line(unsigned long)', 'jsoncons::basic_json_encode_options ::line_length_limit() const', 'jsoncons::basic_json_encoder , std::__1::allocator > >, std::__1::allocator >::encoding_context::data_pos() const']

21 95 jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_key(jsoncons::detail::basic_string_view >const&,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_encoder.hpp:613
21 21 4 :

['jsoncons::basic_json_options_common ::enable_nan_to_str() const', 'jsoncons::basic_json_options_common ::enable_nan_to_num() const', 'jsoncons::basic_json_options_common ::nan_to_str() const', 'jsoncons::basic_json_options_common ::nan_to_num() const']

21 367 jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_encoder.hpp:782
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00134 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
12 12 3 :

['jsoncons::basic_json_options_common ::inf_to_num() const', 'std::__1::basic_string , std::__1::allocator >::data() const', 'std::__1::basic_string , std::__1::allocator >::length() const']

12 19 jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_encoder.hpp:801
9 9 3 :

['std::__1::basic_string , std::__1::allocator >::length() const', 'std::__1::basic_string , std::__1::allocator >::data() const', 'jsoncons::basic_json_options_common ::neginf_to_num() const']

9 16 jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_encoder.hpp:818
7 7 2 :

['nan', 'jsoncons::basic_json_options_common ::nan_to_str() const']

20 26 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:185
5 300 4 :

['jsoncons::basic_json_encoder , std::__1::allocator > >, std::__1::allocator >::visit_string(jsoncons::detail::basic_string_view > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_options_common ::inf_to_str() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)']

5 305 jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_encoder.hpp:806
5 5 1 :

['jsoncons::basic_json_options_common ::inf_to_str() const']

13 17 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:189
4 299 4 :

['jsoncons::basic_json_encoder , std::__1::allocator > >, std::__1::allocator >::visit_string(jsoncons::detail::basic_string_view > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::basic_json_options_common ::neginf_to_str() const']

4 304 jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_encoder.hpp:823
0 7 1 :

['void jsoncons::detail::dump_buffer , std::__1::allocator > > >(char const*, unsigned long, char, jsoncons::string_sink , std::__1::allocator > >&)']

21 28 unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:537
0 6 1 :

['jsoncons::string_sink , std::__1::allocator > >::push_back(char)']

0 6 booljsoncons::detail::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:321

Runtime coverage analysis

Covered functions
197
Functions that are reachable but not covered
50
Reachable functions
270
Percentage of reachable functions covered
81.48%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_json_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 3
/src/jsoncons/./include/jsoncons/json_encoder.hpp 3
/src/jsoncons/./include/jsoncons/json_options.hpp 24
/src/jsoncons/./include/jsoncons/json_visitor.hpp 16
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 2
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 10
/src/jsoncons/./include/jsoncons/json_reader.hpp 7
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 5
/src/jsoncons/./include/jsoncons/source.hpp 10
/src/jsoncons/./include/jsoncons/json_parser.hpp 34
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 7
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/src/jsoncons/./include/jsoncons/json_exception.hpp 2
/usr/local/bin/../include/c++/v1/stdexcept 1

Fuzzer: fuzz_parse

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 58 17.3%
gold [1:9] 4 1.19%
yellow [10:29] 1 0.29%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 272 81.1%
All colors 335 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00097 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
17 3549 26 :

['jsoncons::basic_json_parser >::parse_number(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::begin_member_or_element(std::__1::error_code&)', '__cxa_allocate_exception', 'jsoncons::basic_json_parser >::end_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::bool_value(bool, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', '__cxa_throw', 'jsoncons::basic_json_parser >::parse_string(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::skip_space()', 'jsoncons::basic_json_parser >::parse_true(jsoncons::basic_json_visitor &, std::__1::error_code&)', '__cxa_free_exception', 'jsoncons::assertion_error::assertion_error(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::error_code::operator bool() const', 'jsoncons::basic_json_parser >::end_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::basic_json_parser >::parse_null(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parent() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::basic_json_parser >::begin_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::flush()', 'std::__1::basic_string , std::__1::allocator >::push_back(char)', 'jsoncons::basic_json_parser >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::push_state(jsoncons::json_parse_state)', 'std::__1::basic_string , std::__1::allocator >::clear()', 'jsoncons::basic_json_parser >::parse_false(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::pop_state()']

17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:1368
17 3549 26 :

['jsoncons::basic_json_parser >::parse_number(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::begin_member_or_element(std::__1::error_code&)', '__cxa_allocate_exception', 'jsoncons::basic_json_parser >::end_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::bool_value(bool, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', '__cxa_throw', 'jsoncons::basic_json_parser >::parse_string(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::skip_space()', 'jsoncons::basic_json_parser >::parse_true(jsoncons::basic_json_visitor &, std::__1::error_code&)', '__cxa_free_exception', 'jsoncons::assertion_error::assertion_error(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::error_code::operator bool() const', 'jsoncons::basic_json_parser >::end_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::basic_json_parser >::parse_null(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parent() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::basic_json_parser >::begin_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::flush()', 'std::__1::basic_string , std::__1::allocator >::push_back(char)', 'jsoncons::basic_json_parser >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::push_state(jsoncons::json_parse_state)', 'std::__1::basic_string , std::__1::allocator >::clear()', 'jsoncons::basic_json_parser >::parse_false(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::pop_state()']

17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:1436
17 3549 26 :

['jsoncons::basic_json_parser >::parse_number(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::begin_member_or_element(std::__1::error_code&)', '__cxa_allocate_exception', 'jsoncons::basic_json_parser >::end_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::bool_value(bool, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', '__cxa_throw', 'jsoncons::basic_json_parser >::parse_string(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::skip_space()', 'jsoncons::basic_json_parser >::parse_true(jsoncons::basic_json_visitor &, std::__1::error_code&)', '__cxa_free_exception', 'jsoncons::assertion_error::assertion_error(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::error_code::operator bool() const', 'jsoncons::basic_json_parser >::end_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::basic_json_parser >::parse_null(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parent() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::basic_json_parser >::begin_object(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_visitor ::flush()', 'std::__1::basic_string , std::__1::allocator >::push_back(char)', 'jsoncons::basic_json_parser >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::push_state(jsoncons::json_parse_state)', 'std::__1::basic_string , std::__1::allocator >::clear()', 'jsoncons::basic_json_parser >::parse_false(jsoncons::basic_json_visitor &, std::__1::error_code&)', 'jsoncons::basic_json_parser >::pop_state()']

17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:1490
7 7 2 :

['nan', 'jsoncons::basic_json_options_common ::nan_to_str() const']

20 26 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:185
5 5 1 :

['jsoncons::basic_json_options_common ::inf_to_str() const']

13 17 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:189
0 4 2 :

['jsoncons::basic_json_visitor ::string_value(jsoncons::detail::basic_string_view > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)']

10 49 jsoncons::basic_json_parser >::end_fraction_value(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:2686
0 2 2 :

['std::__1::__wrap_iter , std::__1::allocator >, double>*>::operator->() const', 'jsoncons::basic_json_visitor ::double_value(double, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)']

0 2 jsoncons::basic_json_parser >::end_string_value(charconst*,unsignedlong,jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:2731
0 2 2 :

['std::__1::__wrap_iter , std::__1::allocator >, double>*>::operator->() const', 'jsoncons::basic_json_visitor ::double_value(double, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)']

0 2 jsoncons::basic_json_parser >::end_string_value(charconst*,unsignedlong,jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:2745
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:632
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:749
0 0 None 17 3549 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons/json_parser.hpp:829

Runtime coverage analysis

Covered functions
322
Functions that are reachable but not covered
72
Reachable functions
319
Percentage of reachable functions covered
77.43%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_parse.cpp 1
/src/jsoncons/./include/jsoncons/json_options.hpp 16
/src/jsoncons/./include/jsoncons/basic_json.hpp 33
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 14
/src/jsoncons/./include/jsoncons/json_parser.hpp 35
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 10
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 6
/src/jsoncons/./include/jsoncons/json_exception.hpp 5
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 2
/usr/local/bin/../include/c++/v1/stdexcept 1

Fuzzer: fuzz_csv_encoder

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 478 73.6%
gold [1:9] 1 0.15%
yellow [10:29] 0 0.0%
greenyellow [30:49] 4 0.61%
lawngreen 50+ 166 25.5%
All colors 649 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
3470 3496 25 :

['jsoncons::basic_json_parser >::~basic_json_parser()', 'std::__1::basic_istringstream , std::__1::allocator >::basic_istringstream(std::__1::basic_string , std::__1::allocator > const&, unsigned int)', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::size() const', 'jsoncons::basic_json_visitor ::bool_value(bool, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::finish_parse(jsoncons::basic_json_visitor &)', 'jsoncons::basic_json_visitor ::begin_array(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'std::__1::vector >::size() const', 'std::__1::basic_istringstream , std::__1::allocator >::~basic_istringstream()', 'std::__1::basic_ios >::fail() const', 'jsoncons::basic_json_visitor ::end_array(jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some(jsoncons::basic_json_visitor &)', 'jsoncons::detail::basic_string_view >::basic_string_view()', 'jsoncons::basic_json_visitor ::int64_value(long, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::basic_json_parser(std::__1::allocator const&)', 'std::__1::basic_string , std::__1::allocator >::length() const', 'std::__1::basic_istream >::operator>>(long&)', 'jsoncons::basic_json_visitor ::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::operator[](unsigned long)', 'std::__1::vector >::operator[](unsigned long)', 'std::__1::basic_string , std::__1::allocator >::operator[](unsigned long)', 'std::__1::basic_string , std::__1::allocator >::data() const', 'jsoncons::basic_json_parser >::update(char const*, unsigned long)', 'jsoncons::basic_json_visitor ::double_value(double, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::csv::basic_csv_decode_options ::lossless_number() const', 'std::__1::basic_istream >::operator>>(double&)']

3470 3506 jsoncons::csv::basic_csv_parser >::end_value(bool,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:1637
163 163 2 :

['jsoncons::csv::detail::m_columns_filter >::replay_parse_events(jsoncons::basic_json_visitor &)', 'jsoncons::csv::detail::m_columns_filter >::done() const']

259 5759 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:787
26 26 1 :

['_ZN8jsoncons6detail12from_integerIiNS_11string_sinkINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEEEENS3_9enable_ifIXsr16extension_traits10is_integerIT_EE5valueEmE4typeESC_RT0_']

26 26 voidjsoncons::detail::fill_exponent ,std::__1::allocator >>>(int,jsoncons::string_sink ,std::__1::allocator >>&) call site: 00000 /src/jsoncons/./include/jsoncons/detail/write_number.hpp:152
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00172 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
16 20 3 :

['jsoncons::csv::basic_csv_decode_options ::trim_trailing_inside_quotes() const', 'jsoncons::csv::basic_csv_parser >::trim_string_buffer(bool, bool)', 'jsoncons::csv::basic_csv_decode_options ::trim_leading_inside_quotes() const']

18 3201 jsoncons::csv::basic_csv_parser >::end_quoted_string_value(std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:1577
10 10 4 :

['jsoncons::csv::basic_csv_options_common ::enable_nan_to_str() const', 'jsoncons::csv::basic_csv_options_common ::enable_nan_to_num() const', 'jsoncons::csv::basic_csv_options_common ::nan_to_num() const', 'jsoncons::csv::basic_csv_options_common ::nan_to_str() const']

10 187 voidjsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::write_double_value ,std::__1::allocator >>>(double,jsoncons::ser_contextconst&,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp:766
4 4 2 :

['nan', 'jsoncons::csv::basic_csv_options_common ::nan_to_str() const']

16 39 jsoncons::csv::basic_csv_parser >::basic_csv_parser(jsoncons::csv::basic_csv_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:601
4 4 3 :

['jsoncons::csv::basic_csv_options_common ::inf_to_num() const', 'std::__1::basic_string , std::__1::allocator >::data() const', 'std::__1::basic_string , std::__1::allocator >::length() const']

4 40 voidjsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::write_double_value ,std::__1::allocator >>>(double,jsoncons::ser_contextconst&,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp:783
4 4 3 :

['std::__1::basic_string , std::__1::allocator >::length() const', 'std::__1::basic_string , std::__1::allocator >::data() const', 'jsoncons::csv::basic_csv_options_common ::neginf_to_num() const']

4 40 voidjsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::write_double_value ,std::__1::allocator >>>(double,jsoncons::ser_contextconst&,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp:798
2 113 4 :

['jsoncons::csv::basic_csv_options_common ::inf_to_str() const', 'jsoncons::csv::basic_csv_encoder , std::__1::allocator > >, std::__1::allocator >::visit_string(jsoncons::detail::basic_string_view > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)']

2 147 voidjsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::write_double_value ,std::__1::allocator >>>(double,jsoncons::ser_contextconst&,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp:787
2 113 4 :

['jsoncons::csv::basic_csv_options_common ::neginf_to_str() const', 'jsoncons::csv::basic_csv_encoder , std::__1::allocator > >, std::__1::allocator >::visit_string(jsoncons::detail::basic_string_view > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)']

2 147 voidjsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::write_double_value ,std::__1::allocator >>>(double,jsoncons::ser_contextconst&,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp:802
2 6 6 :

['jsoncons::basic_json_visitor ::key(jsoncons::detail::basic_string_view > const&, jsoncons::ser_context const&, std::__1::error_code&)', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::size() const', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)', 'jsoncons::csv::basic_csv_decode_options ::ignore_empty_values() const', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::operator[](unsigned long)', 'std::__1::basic_string , std::__1::allocator >::empty() const']

2 6 jsoncons::csv::basic_csv_parser >::before_value(std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:1356

Runtime coverage analysis

Covered functions
168
Functions that are reachable but not covered
203
Reachable functions
403
Percentage of reachable functions covered
49.63%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_csv_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 3
/src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/csv/csv_options.hpp 37
/src/jsoncons/./include/jsoncons/json_visitor.hpp 27
/src/jsoncons/./include/jsoncons/detail/write_number.hpp 2
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 13
/src/jsoncons/./include/jsoncons_ext/csv/csv_reader.hpp 5
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 4
/src/jsoncons/./include/jsoncons/source.hpp 10
/src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp 24
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 6
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 3
/src/jsoncons/./include/jsoncons/json_parser.hpp 32
/src/jsoncons/./include/jsoncons/json_options.hpp 15
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/jsoncons/./include/jsoncons/extension_traits.hpp 2

Fuzzer: fuzz_csv

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 458 70.2%
gold [1:9] 1 0.15%
yellow [10:29] 0 0.0%
greenyellow [30:49] 9 1.38%
lawngreen 50+ 184 28.2%
All colors 652 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
3470 3496 25 :

['jsoncons::basic_json_parser >::~basic_json_parser()', 'std::__1::basic_istringstream , std::__1::allocator >::basic_istringstream(std::__1::basic_string , std::__1::allocator > const&, unsigned int)', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::size() const', 'jsoncons::basic_json_visitor ::bool_value(bool, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::finish_parse(jsoncons::basic_json_visitor &)', 'jsoncons::basic_json_visitor ::begin_array(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'std::__1::vector >::size() const', 'std::__1::basic_istringstream , std::__1::allocator >::~basic_istringstream()', 'std::__1::basic_ios >::fail() const', 'jsoncons::basic_json_visitor ::end_array(jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some(jsoncons::basic_json_visitor &)', 'jsoncons::detail::basic_string_view >::basic_string_view()', 'jsoncons::basic_json_visitor ::int64_value(long, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::basic_json_parser(std::__1::allocator const&)', 'std::__1::basic_string , std::__1::allocator >::length() const', 'std::__1::basic_istream >::operator>>(long&)', 'jsoncons::basic_json_visitor ::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::operator[](unsigned long)', 'std::__1::vector >::operator[](unsigned long)', 'std::__1::basic_string , std::__1::allocator >::operator[](unsigned long)', 'std::__1::basic_string , std::__1::allocator >::data() const', 'jsoncons::basic_json_parser >::update(char const*, unsigned long)', 'jsoncons::basic_json_visitor ::double_value(double, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::csv::basic_csv_decode_options ::lossless_number() const', 'std::__1::basic_istream >::operator>>(double&)']

3470 3506 jsoncons::csv::basic_csv_parser >::end_value(bool,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:1637
163 163 2 :

['jsoncons::csv::detail::m_columns_filter >::replay_parse_events(jsoncons::basic_json_visitor &)', 'jsoncons::csv::detail::m_columns_filter >::done() const']

259 5759 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:787
21 21 6 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'jsoncons::json_runtime_error ::json_runtime_error(std::__1::basic_string , std::__1::allocator > const&)', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '__cxa_free_exception', '__cxa_throw']

21 21 _ZNK8jsoncons6detail8chars_toclIcEENSt3__19enable_ifIXsr3std7is_sameIT_cEE5valueEdE4typeEPKS5_m call site: 00161 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:1109
16 20 3 :

['jsoncons::csv::basic_csv_decode_options ::trim_trailing_inside_quotes() const', 'jsoncons::csv::basic_csv_parser >::trim_string_buffer(bool, bool)', 'jsoncons::csv::basic_csv_decode_options ::trim_leading_inside_quotes() const']

18 3201 jsoncons::csv::basic_csv_parser >::end_quoted_string_value(std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:1577
16 20 3 :

['jsoncons::csv::basic_csv_decode_options ::trim_trailing_inside_quotes() const', 'jsoncons::csv::basic_csv_parser >::trim_string_buffer(bool, bool)', 'jsoncons::csv::basic_csv_decode_options ::trim_leading_inside_quotes() const']

16 33 jsoncons::csv::basic_csv_parser >::before_value(std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:1342
4 4 2 :

['nan', 'jsoncons::csv::basic_csv_options_common ::nan_to_str() const']

16 39 jsoncons::csv::basic_csv_parser >::basic_csv_parser(jsoncons::csv::basic_csv_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:601
2 6 6 :

['jsoncons::basic_json_visitor ::key(jsoncons::detail::basic_string_view > const&, jsoncons::ser_context const&, std::__1::error_code&)', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::size() const', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)', 'jsoncons::csv::basic_csv_decode_options ::ignore_empty_values() const', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::operator[](unsigned long)', 'std::__1::basic_string , std::__1::allocator >::empty() const']

2 6 jsoncons::csv::basic_csv_parser >::before_value(std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:1356
2 2 1 :

['jsoncons::csv::basic_csv_options_common ::inf_to_str() const']

12 33 jsoncons::csv::basic_csv_parser >::basic_csv_parser(jsoncons::csv::basic_csv_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:605
2 2 3 :

['jsoncons::csv::basic_csv_options_common ::neginf_to_str() const', 'std::__1::numeric_limits ::infinity()', 'void std::__1::vector , std::__1::allocator >, double>, std::__1::allocator , std::__1::allocator >, double> > >::emplace_back , std::__1::allocator >, double>(std::__1::basic_string , std::__1::allocator >&&, double&&)']

10 29 jsoncons::csv::basic_csv_parser >::basic_csv_parser(jsoncons::csv::basic_csv_decode_options const&,std::__1::function ,std::__1::allocator const&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:609
2 2 1 :

['jsoncons::extension_traits::integer_limits ::max()']

2 6 _ZN8jsoncons6detail18to_integer_decimalIlcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ call site: 00405 /src/jsoncons/./include/jsoncons/detail/parse_number.hpp:258
0 4 2 :

['jsoncons::basic_json_visitor ::string_value(jsoncons::detail::basic_string_view > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::detail::basic_string_view >::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&)']

0 4 jsoncons::csv::basic_csv_parser >::end_value_with_numeric_check(std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:2060
0 2 1 :

['jsoncons::basic_json_visitor ::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&)']

0 2 jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp:1518

Runtime coverage analysis

Covered functions
247
Functions that are reachable but not covered
224
Reachable functions
441
Percentage of reachable functions covered
49.21%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_csv.cpp 1
/src/jsoncons/./include/jsoncons/json_decoder.hpp 2
/src/jsoncons/./include/jsoncons/json_visitor.hpp 27
/src/jsoncons/./include/jsoncons/basic_json.hpp 12
/src/jsoncons/./include/jsoncons_ext/csv/csv_options.hpp 35
/src/jsoncons/./include/jsoncons_ext/csv/csv_reader.hpp 6
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 3
/src/jsoncons/./include/jsoncons/source.hpp 4
/src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp 25
/src/jsoncons/./include/jsoncons/ser_context.hpp 2
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp 13
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/unicode_traits.hpp 6
/src/jsoncons/./include/jsoncons/detail/string_view.hpp 3
/src/jsoncons/./include/jsoncons/json_parser.hpp 32
/src/jsoncons/./include/jsoncons/json_options.hpp 15
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 8
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/jsoncons/./include/jsoncons/extension_traits.hpp 2

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
jsoncons::json_decoder >,std::__1::allocator >::visit_end_object(jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons/json_decoder.hpp 3 ['class.jsoncons::json_decoder *', 'class.std::exception *', 'class.std::__1::error_code *'] 5 0 275 38 2 928 0 1393 1336
jsoncons::json_decoder >,std::__1::allocator >::visit_end_array(jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons/json_decoder.hpp 3 ['class.jsoncons::json_decoder *', 'class.std::exception *', 'class.std::__1::error_code *'] 5 0 298 42 3 883 0 1342 1253
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_string(jsoncons::detail::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp 5 ['class.jsoncons::cbor::basic_cbor_encoder *', 'class.jsoncons::byte_string_view *', 'char ', 'class.jsoncons::basic_item_event_visitor *', 'class.std::__1::error_code *'] 4 0 123 16 15 173 0 791 652
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp 5 ['class.jsoncons::csv::basic_csv_encoder *', 'N/A', 'char ', 'class.std::exception *', 'class.std::__1::error_code *'] 4 0 266 43 39 151 0 469 346
jsoncons::key_index_value >>::operator=(jsoncons::key_index_value >>&&) /src/jsoncons/./include/jsoncons/json_object.hpp 2 ['struct.jsoncons::key_index_value *', 'struct.jsoncons::key_index_value *'] 6 0 31 3 2 331 0 439 310
jsoncons::key_index_value >>::operator=(jsoncons::key_index_value >>&&) /src/jsoncons/./include/jsoncons/json_object.hpp 2 ['struct.jsoncons::key_index_value *', 'struct.jsoncons::key_index_value *'] 5 0 31 3 2 331 0 439 310
jsoncons::bson::basic_bson_encoder >,void>,std::__1::allocator >::visit_string(jsoncons::detail::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp 5 ['class.jsoncons::bson::basic_bson_encoder *', 'class.jsoncons::byte_string_view *', 'char ', 'class.std::exception *', 'class.std::__1::error_code *'] 2 0 429 41 10 85 0 239 199

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
66.0%
1876 / 2840
Cyclomatic complexity statically reachable by fuzzers
67.0%
8239 / 12212

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth Reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
_ZN8jsoncons6detail10to_integerIjcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ 176 44 25.0% []
jsoncons::bson::basic_bson_encoder >,void>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 54 28 51.85% []
jsoncons::bson::basic_bson_encoder >,void>,std::__1::allocator >::visit_int64(long,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 52 25 48.07% []
unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) 72 19 26.38% []
jsoncons::msgpack::basic_msgpack_encoder >,void>,std::__1::allocator >::visit_string(jsoncons::detail::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 68 32 47.05% []
jsoncons::msgpack::basic_msgpack_encoder >,void>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 76 37 48.68% []
jsoncons::bson::bson_error_category_impl::message(int)const 35 19 54.28% []
_ZN8jsoncons6detail10to_integerImcEENSt3__19enable_ifIXaasr16extension_traits14integer_limitsIT_EE14is_specializedntsr16extension_traits14integer_limitsIS4_EE9is_signedENS0_17to_integer_resultIS4_T0_EEE4typeEPKS6_mRS4_ 176 91 51.70% []
unsignedlongjsoncons::detail::write_double::operator() ,std::__1::allocator >>(double,std::__1::basic_string ,std::__1::allocator >&) 72 19 26.38% ['fuzz_json_cursor']
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::basic_json_encoder(jsoncons::string_sink ,std::__1::allocator >>&&,jsoncons::basic_json_encode_options const&,std::__1::allocator const&) 52 26 50.0% ['fuzz_json_encoder']
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::write_bigint_value(jsoncons::detail::basic_string_view >const&) 63 12 19.04% []
_ZN8jsoncons14unicode_traits12to_codepointIcjEENSt3__19enable_ifIXaasr16extension_traits8is_char8IT_EE5valuesr16extension_traits9is_char32IT0_EE5valueENS0_14convert_resultIS4_EEE4typeEPKS4_SB_RS5_NS0_10conv_flagsE 66 19 28.78% []
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_begin_array(jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 58 18 31.03% []
voidjsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::begin_value ,std::__1::allocator >>>(jsoncons::string_sink ,std::__1::allocator >>&) 43 12 27.90% []
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_null(jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 47 13 27.65% []
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_bool(bool,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 47 13 27.65% []
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_string(jsoncons::detail::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 47 13 27.65% []
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 47 13 27.65% []
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_int64(long,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 47 13 27.65% []
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 47 13 27.65% []
voidjsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::write_double_value ,std::__1::allocator >>>(double,jsoncons::ser_contextconst&,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::error_code&) 56 30 53.57% []
voidjsoncons::csv::detail::parse_column_names ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>>(std::__1::basic_string ,std::__1::allocator >const&,std::__1::vector ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>&) 47 7 14.89% []
voidjsoncons::csv::detail::parse_column_types >>(std::__1::basic_string ,std::__1::allocator >const&,std::__1::vector >&) 139 15 10.79% []
jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(std::__1::error_code&) 60 20 33.33% ['fuzz_csv_encoder', 'fuzz_csv']
jsoncons::csv::basic_csv_parser >::end_value(bool,std::__1::error_code&) 157 16 10.19% ['fuzz_csv_encoder', 'fuzz_csv']
jsoncons::csv::basic_csv_parser >::end_quoted_string_value(std::__1::error_code&) 57 17 29.82% ['fuzz_csv_encoder', 'fuzz_csv']
jsoncons::basic_json >::uninitialized_copy(jsoncons::basic_json >const&) 47 23 48.93% []

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_options.hpp ['fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/ser_context.hpp ['fuzz_bson_parser_max', 'fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp ['fuzz_csv_encoder'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons/json_filter.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/bigint.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp ['fuzz_json_parser_max'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp ['fuzz_cbor_encoder'] []
/src/jsoncons/./include/jsoncons/config/binary_config.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_ubjson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_parse.cpp ['fuzz_parse'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp ['fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/json_cursor.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/json_options.hpp ['fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp ['fuzz_ubjson_parser_max'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons/json_decoder.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_parse', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/json_array.hpp [] []
/src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp ['fuzz_cbor_parser_max'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_reader.hpp ['fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./fuzzers/fuzz_csv.cpp ['fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/bson/decode_bson.hpp ['fuzz_bson'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_encoder.hpp ['fuzz_msgpack_encoder'] []
/usr/local/bin/../include/c++/v1/math.h ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/json_encoder.hpp ['fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons/json_reader.hpp ['fuzz_json_parser_max', 'fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons/json_exception.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./fuzzers/fuzz_bson.cpp ['fuzz_bson'] []
/src/jsoncons/./fuzzers/fuzz_cbor.cpp ['fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/json_parser.hpp ['fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/byte_string.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/detail/span.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/detail/parse_number.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_ubjson', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/json_error.hpp [] []
/src/jsoncons/./fuzzers/fuzz_csv_encoder.cpp ['fuzz_csv_encoder'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_error.hpp [] []
/usr/local/bin/../include/c++/v1/stdexcept ['fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/item_event_visitor.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/detail/heap_string.hpp [] []
/src/jsoncons/./include/jsoncons/detail/write_number.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson', 'fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_csv_encoder'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/decode_ubjson.hpp ['fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/basic_json.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_parse', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp ['fuzz_ubjson_encoder'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp ['fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons/detail/grisu3.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp ['fuzz_bson_parser_max', 'fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp ['fuzz_bson_parser_max'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/staj_cursor.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/sink.hpp ['fuzz_ubjson_encoder', 'fuzz_bson_encoder', 'fuzz_msgpack_encoder', 'fuzz_cbor_encoder', 'fuzz_json_encoder', 'fuzz_csv_encoder'] []
/src/jsoncons/./fuzzers/fuzz_json_encoder.cpp ['fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/usr/local/bin/../include/c++/v1/stdlib.h [] []
/src/jsoncons/./fuzzers/fuzz_msgpack.cpp ['fuzz_msgpack'] []
/src/jsoncons/./fuzzers/fuzz_ubjson.cpp ['fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_error.hpp [] []
/src/jsoncons/./include/jsoncons/conv_error.hpp [] []
/src/jsoncons/./include/jsoncons/source.hpp ['fuzz_bson_parser_max', 'fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/typed_array_view.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons/json_object.hpp [] []
/src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp ['fuzz_msgpack_encoder'] []
/src/jsoncons/./include/jsoncons/json_visitor.hpp ['fuzz_bson_parser_max', 'fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/value_converter.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/unicode_traits.hpp ['fuzz_bson_parser_max', 'fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/extension_traits.hpp ['fuzz_csv_encoder', 'fuzz_csv'] []
/usr/local/bin/../include/c++/v1/exception [] []
/src/jsoncons/./fuzzers/fuzz_json_cursor.cpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/allocator_holder.hpp [] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp ['fuzz_bson_encoder'] []
/src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp ['fuzz_bson_encoder'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons/detail/string_view.hpp ['fuzz_bson_parser_max', 'fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp ['fuzz_msgpack_parser_max'] []
/src/jsoncons/./include/jsoncons/source_adaptor.hpp ['fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/cbor/decode_cbor.hpp ['fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp ['fuzz_cbor_encoder'] []
/src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp ['fuzz_ubjson_encoder'] []
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp ['fuzz_bson_parser_max', 'fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_ubjson'] []

Directories in report

Directory
/src/jsoncons/./include/jsoncons_ext/msgpack/
/src/jsoncons/./include/jsoncons/config/
/src/jsoncons/./include/jsoncons_ext/bson/
/src/jsoncons/./include/jsoncons/detail/
/src/jsoncons/./fuzzers/
/usr/local/bin/../include/c++/v1/
/src/jsoncons/./include/jsoncons_ext/csv/
/src/jsoncons/./include/jsoncons_ext/cbor/
/src/jsoncons/./include/jsoncons/
/src/jsoncons/./include/jsoncons_ext/ubjson/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
fuzz_bson_parser_max fuzzerLogFile-0-n6ybXEv58a.data fuzzerLogFile-0-n6ybXEv58a.data.yaml fuzz_bson_parser_max.covreport
fuzz_ubjson_parser_max fuzzerLogFile-0-fJuLpmLgYw.data fuzzerLogFile-0-fJuLpmLgYw.data.yaml fuzz_ubjson_parser_max.covreport
fuzz_ubjson_encoder fuzzerLogFile-0-q3BVIM7wrc.data fuzzerLogFile-0-q3BVIM7wrc.data.yaml fuzz_ubjson_encoder.covreport
fuzz_bson_encoder fuzzerLogFile-0-KNupiChqy0.data fuzzerLogFile-0-KNupiChqy0.data.yaml fuzz_bson_encoder.covreport
fuzz_msgpack_parser_max fuzzerLogFile-0-nXGZcCQEDw.data fuzzerLogFile-0-nXGZcCQEDw.data.yaml fuzz_msgpack_parser_max.covreport
fuzz_msgpack_encoder fuzzerLogFile-0-tXYdNiqQmI.data fuzzerLogFile-0-tXYdNiqQmI.data.yaml fuzz_msgpack_encoder.covreport
fuzz_bson fuzzerLogFile-0-qegnO23DVU.data fuzzerLogFile-0-qegnO23DVU.data.yaml fuzz_bson.covreport
fuzz_ubjson fuzzerLogFile-0-mn3RAb1cbT.data fuzzerLogFile-0-mn3RAb1cbT.data.yaml fuzz_ubjson.covreport
fuzz_cbor_parser_max fuzzerLogFile-0-qaZtvcwong.data fuzzerLogFile-0-qaZtvcwong.data.yaml fuzz_cbor_parser_max.covreport
fuzz_msgpack fuzzerLogFile-0-jgfw2j97FL.data fuzzerLogFile-0-jgfw2j97FL.data.yaml fuzz_msgpack.covreport
fuzz_cbor_encoder fuzzerLogFile-0-GZN7u5PjmS.data fuzzerLogFile-0-GZN7u5PjmS.data.yaml fuzz_cbor_encoder.covreport
fuzz_cbor fuzzerLogFile-0-htv7SfrZFh.data fuzzerLogFile-0-htv7SfrZFh.data.yaml fuzz_cbor.covreport
fuzz_json_parser_max fuzzerLogFile-0-fJqbx6CdZ7.data fuzzerLogFile-0-fJqbx6CdZ7.data.yaml fuzz_json_parser_max.covreport
fuzz_json_cursor fuzzerLogFile-0-FwsUaDhgRD.data fuzzerLogFile-0-FwsUaDhgRD.data.yaml fuzz_json_cursor.covreport
fuzz_json_encoder fuzzerLogFile-0-u9Yzqn51IN.data fuzzerLogFile-0-u9Yzqn51IN.data.yaml fuzz_json_encoder.covreport
fuzz_parse fuzzerLogFile-0-KDVIDTbLhH.data fuzzerLogFile-0-KDVIDTbLhH.data.yaml fuzz_parse.covreport
fuzz_csv_encoder fuzzerLogFile-0-GsMGB2IeQS.data fuzzerLogFile-0-GsMGB2IeQS.data.yaml fuzz_csv_encoder.covreport
fuzz_csv fuzzerLogFile-0-KW67BfyL5a.data fuzzerLogFile-0-KW67BfyL5a.data.yaml fuzz_csv.covreport