summaryrefslogtreecommitdiff
path: root/json4cpp/tests/abi/config/noversion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'json4cpp/tests/abi/config/noversion.cpp')
-rw-r--r--json4cpp/tests/abi/config/noversion.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/json4cpp/tests/abi/config/noversion.cpp b/json4cpp/tests/abi/config/noversion.cpp
new file mode 100644
index 0000000000..2ae5cf5acd
--- /dev/null
+++ b/json4cpp/tests/abi/config/noversion.cpp
@@ -0,0 +1,44 @@
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++ (supporting code)
+// | | |__ | | | | | | version 3.12.0
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann <https://nlohmann.me>
+// SPDX-License-Identifier: MIT
+
+#include "doctest_compatibility.h"
+
+#include "config.hpp"
+
+#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 1
+#include <nlohmann/json_fwd.hpp>
+
+TEST_CASE("default namespace without version component")
+{
+ // GCC 4.8 fails with regex_error
+#if !DOCTEST_GCC || DOCTEST_GCC >= DOCTEST_COMPILER(4, 9, 0)
+ SECTION("namespace matches expectation")
+ {
+ std::string expected = "nlohmann::json_abi";
+
+#if JSON_DIAGNOSTICS
+ expected += "_diag";
+#endif
+
+#if JSON_DIAGNOSTIC_POSITIONS
+ expected += "_dp";
+#endif
+
+#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
+ expected += "_ldvcmp";
+#endif
+
+ expected += "::basic_json";
+
+ // fallback for Clang
+ const std::string ns{STRINGIZE(NLOHMANN_JSON_NAMESPACE) "::basic_json"};
+
+ CHECK(namespace_name<nlohmann::json>(ns) == expected);
+ }
+#endif
+}