✅ CBOR roundtrip tests
This commit is contained in:
parent
a73f43a7a2
commit
93589e630c
142 changed files with 287 additions and 0 deletions
|
|
@ -626,3 +626,175 @@ TEST_CASE("single CBOR roundtrip")
|
|||
CHECK(j1 == j2);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("CBOR roundtrips", "[hide]")
|
||||
{
|
||||
SECTION("input from flynn")
|
||||
{
|
||||
for (std::string filename :
|
||||
{
|
||||
"test/data/json_nlohmann_tests/all_unicode.json",
|
||||
"test/data/json.org/1.json",
|
||||
"test/data/json.org/2.json",
|
||||
"test/data/json.org/3.json",
|
||||
"test/data/json.org/4.json",
|
||||
"test/data/json.org/5.json",
|
||||
"test/data/json_roundtrip/roundtrip01.json",
|
||||
"test/data/json_roundtrip/roundtrip02.json",
|
||||
"test/data/json_roundtrip/roundtrip03.json",
|
||||
"test/data/json_roundtrip/roundtrip04.json",
|
||||
"test/data/json_roundtrip/roundtrip05.json",
|
||||
"test/data/json_roundtrip/roundtrip06.json",
|
||||
"test/data/json_roundtrip/roundtrip07.json",
|
||||
"test/data/json_roundtrip/roundtrip08.json",
|
||||
"test/data/json_roundtrip/roundtrip09.json",
|
||||
"test/data/json_roundtrip/roundtrip10.json",
|
||||
"test/data/json_roundtrip/roundtrip11.json",
|
||||
"test/data/json_roundtrip/roundtrip12.json",
|
||||
"test/data/json_roundtrip/roundtrip13.json",
|
||||
"test/data/json_roundtrip/roundtrip14.json",
|
||||
"test/data/json_roundtrip/roundtrip15.json",
|
||||
"test/data/json_roundtrip/roundtrip16.json",
|
||||
"test/data/json_roundtrip/roundtrip17.json",
|
||||
"test/data/json_roundtrip/roundtrip18.json",
|
||||
"test/data/json_roundtrip/roundtrip19.json",
|
||||
"test/data/json_roundtrip/roundtrip20.json",
|
||||
"test/data/json_roundtrip/roundtrip21.json",
|
||||
"test/data/json_roundtrip/roundtrip22.json",
|
||||
"test/data/json_roundtrip/roundtrip23.json",
|
||||
"test/data/json_roundtrip/roundtrip24.json",
|
||||
"test/data/json_roundtrip/roundtrip25.json",
|
||||
"test/data/json_roundtrip/roundtrip26.json",
|
||||
"test/data/json_roundtrip/roundtrip27.json",
|
||||
"test/data/json_roundtrip/roundtrip28.json",
|
||||
"test/data/json_roundtrip/roundtrip29.json",
|
||||
"test/data/json_roundtrip/roundtrip30.json",
|
||||
"test/data/json_roundtrip/roundtrip31.json",
|
||||
"test/data/json_roundtrip/roundtrip32.json",
|
||||
"test/data/json_testsuite/sample.json", // kills AppVeyor
|
||||
"test/data/json_tests/pass1.json",
|
||||
"test/data/json_tests/pass2.json",
|
||||
"test/data/json_tests/pass3.json",
|
||||
"test/data/regression/floats.json",
|
||||
"test/data/regression/signed_ints.json",
|
||||
"test/data/regression/unsigned_ints.json",
|
||||
"test/data/regression/working_file.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_arraysWithSpaces.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_empty-string.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_empty.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_ending_with_newline.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_false.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_heterogeneous.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_null.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_with_1_and_newline.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_with_leading_space.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_with_several_null.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_array_with_trailing_space.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_0e+1.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_0e1.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_after_space.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_double_close_to_zero.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_double_huge_neg_exp.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_huge_exp.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_int_with_exp.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_minus_zero.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_negative_int.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_negative_one.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_negative_zero.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e_neg_exp.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e_pos_exp.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_exponent.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_fraction_exponent.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_neg_exp.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_neg_overflow.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_pos_exponent.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_pos_overflow.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_real_underflow.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_simple_int.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_number_simple_real.json",
|
||||
//"test/data/nst_json_testsuite/test_parsing/y_number_too_big_neg_int.json",
|
||||
//"test/data/nst_json_testsuite/test_parsing/y_number_too_big_pos_int.json",
|
||||
//"test/data/nst_json_testsuite/test_parsing/y_number_very_big_negative_int.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_basic.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_duplicated_key.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_duplicated_key_and_value.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_empty.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_empty_key.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_escaped_null_in_key.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_extreme_numbers.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_long_strings.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_simple.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_string_unicode.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_object_with_newlines.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_1_2_3_bytes_UTF-8_sequences.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_UTF-16_Surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_accepted_surrogate_pair.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_accepted_surrogate_pairs.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_allowed_escapes.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_backslash_and_u_escaped_zero.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_backslash_doublequotes.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_comments.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_double_escape_a.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_double_escape_n.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_escaped_control_character.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_escaped_noncharacter.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_in_array.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_in_array_with_leading_space.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_last_surrogates_1_and_2.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_newline_uescaped.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+10FFFF.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+1FFFF.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+FFFF.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_null_escape.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_one-byte-utf-8.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_pi.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_simple_ascii.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_space.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_three-byte-utf-8.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_two-byte-utf-8.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_u+2028_line_sep.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_u+2029_par_sep.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_uEscape.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_unescaped_char_delete.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_unicode.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_unicodeEscapedBackslash.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_unicode_2.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_unicode_U+2064_invisible_plus.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_unicode_escaped_double_quote.json",
|
||||
// "test/data/nst_json_testsuite/test_parsing/y_string_utf16.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_utf8.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_string_with_del_character.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_lonely_false.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_lonely_int.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_lonely_negative_real.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_lonely_null.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_lonely_string.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_lonely_true.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_string_empty.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_trailing_newline.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_true_in_array.json",
|
||||
"test/data/nst_json_testsuite/test_parsing/y_structure_whitespace_array.json"
|
||||
})
|
||||
{
|
||||
CAPTURE(filename);
|
||||
|
||||
// parse JSON file
|
||||
std::ifstream f_json(filename);
|
||||
json j1 = json::parse(f_json);
|
||||
|
||||
// parse CBOR file
|
||||
std::ifstream f_cbor(filename + ".cbor", std::ios::binary);
|
||||
std::vector<uint8_t> packed((std::istreambuf_iterator<char>(f_cbor)),
|
||||
std::istreambuf_iterator<char>());
|
||||
json j2;
|
||||
CHECK_NOTHROW(j2 = json::from_cbor(packed));
|
||||
|
||||
// compare parsed JSON values
|
||||
CHECK(j1 == j2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue