mirror of
https://github.com/nlohmann/json.git
synced 2026-10-10 08:27:13 +00:00
Fix the Ubuntu CI failures of the unity test build
- build unit-noexcept.cpp on its own: it suppresses GCC's -Wnoexcept around its include of the library, which has no effect once another file of the batch included the library first - unit-comparison.cpp: make make_unordered_object inline (-Wmissing-prototypes in a named namespace) and replace the using-directive by using-declarations, as Clang reports a using-directive in an #include-d file (-Wheader-hygiene) - unit-json_pointer-cpp20.cpp: include <compare> only with JSON_HAS_THREE_WAY_COMPARISON; GCC 9 and Clang 9 accept C++20 but have no <compare> Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
3 files changed
+18
-6
No files matched your search
+5
-3
@@ -416,9 +416,11 @@ function(json_test_add_unity_tests)
|
||||
endforeach()
|
||||
|
||||
# files that must not be merged into a batch: unit-32bit.cpp is only built
|
||||
# for 32bit targets, and unit-no-macro-leak.cpp checks that including the
|
||||
# library defines no unprefixed macro, which any other file would disturb
|
||||
set(standalone_files unit-32bit.cpp unit-no-macro-leak.cpp)
|
||||
# for 32bit targets, unit-no-macro-leak.cpp checks that including the
|
||||
# library defines no unprefixed macro, which any other file would disturb,
|
||||
# and unit-noexcept.cpp suppresses GCC's -Wnoexcept around its include of
|
||||
# the library, which has no effect once another file included it first
|
||||
set(standalone_files unit-32bit.cpp unit-no-macro-leak.cpp unit-noexcept.cpp)
|
||||
|
||||
set(harmless_macros "^(DOCTEST_.*|SKIP_TESTS_FOR_.*|JSON_TEST_DEPRECATED_FUNCTIONS_DELETED|JSON_TEST_STRICT_NUL_HANDLING_ENABLED|JSON_TEST_STRINGIZE)$")
|
||||
|
||||
|
||||
@@ -595,7 +595,7 @@ struct unordered_object_t : std::map<Key, Value, directed_less<Key>, Allocator>
|
||||
using unordered_json = nlohmann::json::with_object_t<unordered_object_t>;
|
||||
|
||||
// the entries "0" to "9", enumerated in ascending or in descending order
|
||||
unordered_json make_unordered_object(const bool descending)
|
||||
inline unordered_json make_unordered_object(const bool descending)
|
||||
{
|
||||
unordered_json j = unordered_json::object_t(directed_less<std::string>(descending));
|
||||
for (int i = 0; i < 10; ++i)
|
||||
@@ -676,7 +676,15 @@ using case_insensitive_map = std::map<Key, Value, case_insensitive_less, Allocat
|
||||
using ci_json = nlohmann::json::with_object_t<case_insensitive_map>;
|
||||
} // namespace unit_comparison_detail
|
||||
|
||||
using namespace unit_comparison_detail; // NOLINT(google-build-using-namespace)
|
||||
// using-declarations rather than a using-directive, as this file may be
|
||||
// #include-d into a batch with other test files (JSON_TestUnityBuild)
|
||||
using unit_comparison_detail::ci_json;
|
||||
using unit_comparison_detail::innermost;
|
||||
using unit_comparison_detail::key_case_json;
|
||||
using unit_comparison_detail::key_case_less;
|
||||
using unit_comparison_detail::make_unordered_object;
|
||||
using unit_comparison_detail::nest;
|
||||
using unit_comparison_detail::unordered_json;
|
||||
|
||||
TEST_CASE("equality of objects whose entries have no fixed order")
|
||||
{
|
||||
|
||||
@@ -28,7 +28,9 @@ using nlohmann::json;
|
||||
#endif
|
||||
|
||||
#ifdef JSON_HAS_CPP_20
|
||||
#include <compare>
|
||||
#if JSON_HAS_THREE_WAY_COMPARISON
|
||||
#include <compare>
|
||||
#endif
|
||||
#include <string>
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
Reference in new issue
Block a user