🔨 deprecated j << istream / j >> ostream functions #367
The implementation is non-standard. Deprecation allows a simpler API in the future without removing any features.
This commit is contained in:
parent
b4dbebffcd
commit
c2e80a72d7
6 changed files with 110 additions and 69 deletions
|
@ -216,6 +216,8 @@ TEST_CASE("regression tests")
|
|||
{
|
||||
json a = {1, 2, 3};
|
||||
json::reverse_iterator rit = ++a.rbegin();
|
||||
CHECK(*rit == json(2));
|
||||
CHECK(rit.value() == json(2));
|
||||
}
|
||||
{
|
||||
json a = {1, 2, 3};
|
||||
|
@ -540,7 +542,7 @@ TEST_CASE("regression tests")
|
|||
CAPTURE(filename);
|
||||
json j;
|
||||
std::ifstream f(filename);
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -556,7 +558,7 @@ TEST_CASE("regression tests")
|
|||
CAPTURE(filename);
|
||||
json j;
|
||||
std::ifstream f(filename);
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -586,14 +588,14 @@ TEST_CASE("regression tests")
|
|||
std::stringstream ss;
|
||||
json j;
|
||||
ss << "123";
|
||||
CHECK_NOTHROW(j << ss);
|
||||
CHECK_NOTHROW(ss >> j);
|
||||
|
||||
// see https://github.com/nlohmann/json/issues/367#issuecomment-262841893:
|
||||
// ss is not at EOF; this yielded an error before the fix
|
||||
// (threw basic_string::append). No, it should just throw
|
||||
// a parse error because of the EOF.
|
||||
CHECK_THROWS_AS(j << ss, json::parse_error);
|
||||
CHECK_THROWS_WITH(j << ss,
|
||||
CHECK_THROWS_AS(ss >> j, json::parse_error);
|
||||
CHECK_THROWS_WITH(ss >> j,
|
||||
"[json.exception.parse_error.101] parse error at 1: parse error - unexpected end of input");
|
||||
}
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ TEST_CASE("compliance tests from json.org")
|
|||
CAPTURE(filename);
|
||||
json j;
|
||||
std::ifstream f(filename);
|
||||
CHECK_THROWS_AS(j << f, json::parse_error);
|
||||
CHECK_THROWS_AS(f >> j, json::parse_error);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ TEST_CASE("compliance tests from json.org")
|
|||
CAPTURE(filename);
|
||||
json j;
|
||||
std::ifstream f(filename);
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -319,7 +319,7 @@ TEST_CASE("test suite from json-test-suite")
|
|||
// strings in a JSON array
|
||||
std::ifstream f("test/data/json_testsuite/sample.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
|
||||
// the array has 3 elements
|
||||
CHECK(j.size() == 3);
|
||||
|
@ -334,35 +334,35 @@ TEST_CASE("json.org examples")
|
|||
{
|
||||
std::ifstream f("test/data/json.org/1.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
|
||||
SECTION("2.json")
|
||||
{
|
||||
std::ifstream f("test/data/json.org/2.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
|
||||
SECTION("3.json")
|
||||
{
|
||||
std::ifstream f("test/data/json.org/3.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
|
||||
SECTION("4.json")
|
||||
{
|
||||
std::ifstream f("test/data/json.org/4.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
|
||||
SECTION("5.json")
|
||||
{
|
||||
std::ifstream f("test/data/json.org/5.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -545,7 +545,7 @@ TEST_CASE("nst's JSONTestSuite")
|
|||
CAPTURE(filename);
|
||||
std::ifstream f(filename);
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -754,7 +754,7 @@ TEST_CASE("nst's JSONTestSuite")
|
|||
CAPTURE(filename);
|
||||
std::ifstream f(filename);
|
||||
json j;
|
||||
CHECK_THROWS_AS(j << f, json::parse_error);
|
||||
CHECK_THROWS_AS(f >> j, json::parse_error);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -777,7 +777,7 @@ TEST_CASE("nst's JSONTestSuite")
|
|||
CAPTURE(filename);
|
||||
std::ifstream f(filename);
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -797,7 +797,7 @@ TEST_CASE("nst's JSONTestSuite")
|
|||
CAPTURE(filename);
|
||||
std::ifstream f(filename);
|
||||
json j;
|
||||
CHECK_THROWS_AS(j << f, json::out_of_range);
|
||||
CHECK_THROWS_AS(f >> j, json::out_of_range);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -824,7 +824,7 @@ TEST_CASE("nst's JSONTestSuite")
|
|||
CAPTURE(filename);
|
||||
std::ifstream f(filename);
|
||||
json j;
|
||||
CHECK_THROWS_AS(j << f, json::parse_error);
|
||||
CHECK_THROWS_AS(f >> j, json::parse_error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -851,7 +851,7 @@ TEST_CASE("Big List of Naughty Strings")
|
|||
{
|
||||
std::ifstream f("test/data/big-list-of-naughty-strings/blns.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
|
||||
// check if parsed strings roundtrip
|
||||
|
|
|
@ -125,7 +125,7 @@ TEST_CASE("Unicode", "[hide]")
|
|||
// strings in a JSON array
|
||||
std::ifstream f("test/data/json_nlohmann_tests/all_unicode.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
|
||||
// the array has 1112064 + 1 elemnts (a terminating "null" value)
|
||||
// Note: 1112064 = 0x1FFFFF code points - 2048 invalid values between
|
||||
|
@ -168,7 +168,7 @@ TEST_CASE("Unicode", "[hide]")
|
|||
// read a file with a UTF-8 BOM
|
||||
std::ifstream f("test/data/json_nlohmann_tests/bom.json");
|
||||
json j;
|
||||
CHECK_NOTHROW(j << f);
|
||||
CHECK_NOTHROW(f >> j);
|
||||
}
|
||||
|
||||
SECTION("error for incomplete/wrong BOM")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue