diff --git a/tests/src/test_utils.hpp b/tests/src/test_utils.hpp index c6371e6e9..baa802f71 100644 --- a/tests/src/test_utils.hpp +++ b/tests/src/test_utils.hpp @@ -32,15 +32,12 @@ inline std::vector read_binary_file(const std::string& filename) // sentinel for istreambuf_iterator; compares != true until EOF is reached // lets tests read a file directly via the new iterator+sentinel overloads -// instead of buffering the whole file into a vector first +// instead of buffering the whole file into a vector first. +// Only the iterator-first direction (it != sentinel) is ever evaluated by +// the library's parse loop, so no reversed-order overload is needed. struct istreambuf_sentinel { - friend bool operator!=(const std::istreambuf_iterator& it, const istreambuf_sentinel&) noexcept - { - return it != std::istreambuf_iterator(); - } - - friend bool operator!=(const istreambuf_sentinel&, const std::istreambuf_iterator& it) noexcept + friend bool operator!=(const std::istreambuf_iterator& it, const istreambuf_sentinel& /*unused*/) noexcept { return it != std::istreambuf_iterator(); } diff --git a/tests/src/unit-bjdata.cpp b/tests/src/unit-bjdata.cpp index 3c272236f..5af4afac1 100644 --- a/tests/src/unit-bjdata.cpp +++ b/tests/src/unit-bjdata.cpp @@ -3703,7 +3703,7 @@ TEST_CASE("Parse BJData directly from a file using iterator and sentinel") { std::string const filename = TEST_DATA_DIRECTORY "/json_testsuite/sample.json.bjdata"; std::ifstream file(filename, std::ios::binary); - std::istreambuf_iterator first(file); + const std::istreambuf_iterator first(file); const json parsed = json::from_bjdata(first, utils::istreambuf_sentinel{}); CHECK((parsed.is_object() || parsed.is_array())); } diff --git a/tests/src/unit-bson.cpp b/tests/src/unit-bson.cpp index 84b974b0f..28837d75e 100644 --- a/tests/src/unit-bson.cpp +++ b/tests/src/unit-bson.cpp @@ -1216,7 +1216,7 @@ TEST_CASE("Parse BSON directly from a file using iterator and sentinel") const json expected = json::parse(f_json); std::ifstream file(filename + ".bson", std::ios::binary); - std::istreambuf_iterator first(file); + const std::istreambuf_iterator first(file); const json parsed = json::from_bson(first, utils::istreambuf_sentinel{}); CHECK(parsed == expected); } diff --git a/tests/src/unit-cbor.cpp b/tests/src/unit-cbor.cpp index c0cd5cde3..af7364299 100644 --- a/tests/src/unit-cbor.cpp +++ b/tests/src/unit-cbor.cpp @@ -1925,7 +1925,7 @@ TEST_CASE("Parse CBOR directly from a file using iterator and sentinel") { std::string const filename = TEST_DATA_DIRECTORY "/json_testsuite/sample.json.cbor"; std::ifstream file(filename, std::ios::binary); - std::istreambuf_iterator first(file); + const std::istreambuf_iterator first(file); const json parsed = json::from_cbor(first, utils::istreambuf_sentinel{}); CHECK((parsed.is_object() || parsed.is_array())); } diff --git a/tests/src/unit-msgpack.cpp b/tests/src/unit-msgpack.cpp index d35fe4198..4358cd464 100644 --- a/tests/src/unit-msgpack.cpp +++ b/tests/src/unit-msgpack.cpp @@ -1645,7 +1645,7 @@ TEST_CASE("Parse MessagePack directly from a file using iterator and sentinel") { std::string const filename = TEST_DATA_DIRECTORY "/json_testsuite/sample.json.msgpack"; std::ifstream file(filename, std::ios::binary); - std::istreambuf_iterator first(file); + const std::istreambuf_iterator first(file); const json parsed = json::from_msgpack(first, utils::istreambuf_sentinel{}); CHECK((parsed.is_object() || parsed.is_array())); } diff --git a/tests/src/unit-ubjson.cpp b/tests/src/unit-ubjson.cpp index 9dae264ed..8242a0cc8 100644 --- a/tests/src/unit-ubjson.cpp +++ b/tests/src/unit-ubjson.cpp @@ -2397,7 +2397,7 @@ TEST_CASE("Parse UBJSON directly from a file using iterator and sentinel") { std::string const filename = TEST_DATA_DIRECTORY "/json_testsuite/sample.json.ubjson"; std::ifstream file(filename, std::ios::binary); - std::istreambuf_iterator first(file); + const std::istreambuf_iterator first(file); const json parsed = json::from_ubjson(first, utils::istreambuf_sentinel{}); CHECK((parsed.is_object() || parsed.is_array())); }