mirror of
https://github.com/nlohmann/json.git
synced 2025-07-25 13:41:56 +03:00
Exclude bytewise comparison in certain tests.
These tests never worked - they weren't run before
d5aaeb4
.
Note that these tests would fail because of this library
ordering dictionary keys (which is legal). So changing the
input files (or modifying stored cbor/msgpack/ubjson files)
would make the tests work and they could get removed from
"exclude_packaged".
Also move parsing of files in these unit tests to within
the inner sections, so that they're only parsed
number_of_files * number_of_sections instead of
number_of_files * number_of_files * number_of_sections
(so, instead of close to 100k parses about 700).
This commit is contained in:
@ -1349,6 +1349,24 @@ TEST_CASE("MessagePack roundtrips", "[hide]")
|
||||
{
|
||||
SECTION("input from msgpack-python")
|
||||
{
|
||||
// most of these are exluded due to differences in key order (not a real problem)
|
||||
auto exclude_packed = std::set<std::string>{
|
||||
"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_testsuite/sample.json", // kills AppVeyor
|
||||
"test/data/json_tests/pass1.json",
|
||||
"test/data/regression/working_file.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_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",
|
||||
};
|
||||
|
||||
for (std::string filename :
|
||||
{
|
||||
"test/data/json_nlohmann_tests/all_unicode.json",
|
||||
@ -1500,12 +1518,12 @@ TEST_CASE("MessagePack roundtrips", "[hide]")
|
||||
{
|
||||
CAPTURE(filename);
|
||||
|
||||
// parse JSON file
|
||||
std::ifstream f_json(filename);
|
||||
json j1 = json::parse(f_json);
|
||||
|
||||
SECTION(filename + ": std::vector<uint8_t>")
|
||||
{
|
||||
// parse JSON file
|
||||
std::ifstream f_json(filename);
|
||||
json j1 = json::parse(f_json);
|
||||
|
||||
// parse MessagePack file
|
||||
std::ifstream f_msgpack(filename + ".msgpack", std::ios::binary);
|
||||
std::vector<uint8_t> packed(
|
||||
@ -1520,6 +1538,10 @@ TEST_CASE("MessagePack roundtrips", "[hide]")
|
||||
|
||||
SECTION(filename + ": std::ifstream")
|
||||
{
|
||||
// parse JSON file
|
||||
std::ifstream f_json(filename);
|
||||
json j1 = json::parse(f_json);
|
||||
|
||||
// parse MessagePack file
|
||||
std::ifstream f_msgpack(filename + ".msgpack", std::ios::binary);
|
||||
json j2;
|
||||
@ -1531,6 +1553,10 @@ TEST_CASE("MessagePack roundtrips", "[hide]")
|
||||
|
||||
SECTION(filename + ": uint8_t* and size")
|
||||
{
|
||||
// parse JSON file
|
||||
std::ifstream f_json(filename);
|
||||
json j1 = json::parse(f_json);
|
||||
|
||||
// parse MessagePack file
|
||||
std::ifstream f_msgpack(filename + ".msgpack", std::ios::binary);
|
||||
std::vector<uint8_t> packed(
|
||||
@ -1545,17 +1571,24 @@ TEST_CASE("MessagePack roundtrips", "[hide]")
|
||||
|
||||
SECTION(filename + ": output to output adapters")
|
||||
{
|
||||
// parse JSON file
|
||||
std::ifstream f_json(filename);
|
||||
json j1 = json::parse(f_json);
|
||||
|
||||
// parse MessagePack file
|
||||
std::ifstream f_msgpack(filename + ".msgpack", std::ios::binary);
|
||||
std::vector<uint8_t> packed(
|
||||
(std::istreambuf_iterator<char>(f_msgpack)),
|
||||
std::istreambuf_iterator<char>());
|
||||
|
||||
SECTION(filename + ": output adapters: std::vector<uint8_t>")
|
||||
if (!exclude_packed.count(filename))
|
||||
{
|
||||
std::vector<uint8_t> vec;
|
||||
json::to_msgpack(j1, vec);
|
||||
CHECK(vec == packed);
|
||||
SECTION(filename + ": output adapters: std::vector<uint8_t>")
|
||||
{
|
||||
std::vector<uint8_t> vec;
|
||||
json::to_msgpack(j1, vec);
|
||||
CHECK(vec == packed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user