Skip to content

Commit

Permalink
🔨 another try to fix #714
Browse files Browse the repository at this point in the history
adding std::ios_base::binary when opening all_unicode.json.cbor
  • Loading branch information
nlohmann committed Oct 31, 2017
1 parent c4d6626 commit 5696660
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 35 deletions.
2 changes: 1 addition & 1 deletion src/json.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6789,7 +6789,7 @@ class json_ref
{}

template <class... Args>
json_ref(Args&&... args)
json_ref(Args&& ... args)
: owned_value(std::forward<Args>(args)...),
value_ref(&owned_value),
is_rvalue(true)
Expand Down
67 changes: 33 additions & 34 deletions test/src/unit-regression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,18 @@ using nlohmann::json;

namespace
{
struct nocopy
{
struct nocopy
{
nocopy() = default;
nocopy(const nocopy &) = delete;
nocopy(const nocopy&) = delete;

int val = 0;

friend void to_json(json& j, const nocopy& n)
{
j = {{"val", n.val}};
j = {{"val", n.val}};
}
};
};
}

TEST_CASE("regression tests")
Expand Down Expand Up @@ -1270,40 +1270,39 @@ TEST_CASE("regression tests")
}
}

/*
SECTION("issue #714 - throw std::ios_base::failure exception when failbit set to true")
SECTION("issue #714 - throw std::ios_base::failure exception when failbit set to true")
{
{
{
std::ifstream is;
is.exceptions(
is.exceptions()
| std::ios_base::failbit
| std::ios_base::badbit
); // handle different exceptions as 'file not found', 'permission denied'
is.open("test/data/regression/working_file.json");
CHECK_NOTHROW(nlohmann::json::parse(is));
}
std::ifstream is;
is.exceptions(
is.exceptions()
| std::ios_base::failbit
| std::ios_base::badbit
); // handle different exceptions as 'file not found', 'permission denied'

is.open("test/data/regression/working_file.json");
CHECK_NOTHROW(nlohmann::json::parse(is));
}

{
std::ifstream is;
is.exceptions(
is.exceptions()
| std::ios_base::failbit
| std::ios_base::badbit
); // handle different exceptions as 'file not found', 'permission denied'
is.open("test/data/json_nlohmann_tests/all_unicode.json.cbor");
CHECK_NOTHROW(nlohmann::json::from_cbor(is));
}
{
std::ifstream is;
is.exceptions(
is.exceptions()
| std::ios_base::failbit
| std::ios_base::badbit
); // handle different exceptions as 'file not found', 'permission denied'

is.open("test/data/json_nlohmann_tests/all_unicode.json.cbor",
std::ios_base::in | std::ios_base::binary);
CHECK_NOTHROW(nlohmann::json::from_cbor(is));
}
*/
}

SECTION("issue #805 - copy constructor is used with std::initializer_list constructor.")
{
nocopy n;
json j;
j = {{"nocopy", n}};
CHECK(j["nocopy"]["val"] == 0);
nocopy n;
json j;
j = {{"nocopy", n}};
CHECK(j["nocopy"]["val"] == 0);
}
}

0 comments on commit 5696660

Please sign in to comment.