diff --git a/cmake/test.cmake b/cmake/test.cmake index 351119225..551729e79 100644 --- a/cmake/test.cmake +++ b/cmake/test.cmake @@ -148,7 +148,18 @@ function(_json_test_add_test test_name file main cxx_standard) message(FATAL_ERROR "Target ${test_target} has already been added.") endif() + file(READ ${file} file_content) + string(REGEX MATCH "[\n\r \t]+#[ \t]*include[ \t]+\"print_meta.cpp\"" match_result "${file_content}") + if(NOT match_result) + message(FATAL_ERROR "Please append\n" + "#include \"print_meta.cpp\" // NOLINT(bugprone-suspicious-include)\n" + "to the end of file: ${file}") + endif() + + # add test executable add_executable(${test_target} ${file}) + # add parentheses to silence clang-tidy warning + target_compile_definitions(${test_target} PRIVATE "JSON_TEST_NAME=(${test_target})") target_link_libraries(${test_target} PRIVATE ${main}) # set and require C++ standard diff --git a/tests/src/print_meta.cpp b/tests/src/print_meta.cpp new file mode 100644 index 000000000..e8a14c71b --- /dev/null +++ b/tests/src/print_meta.cpp @@ -0,0 +1,44 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ (supporting code) +// | | |__ | | | | | | version 3.10.5 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-License-Identifier: MIT + +#include + +#ifdef JSON_TEST_PRINT_META_WITH_MAIN + #include +#endif + +#define STRINGIZE_EX(x) #x +#define STRINGIZE(x) STRINGIZE_EX(x) + +void print_meta(); + +void print_meta() +{ + auto meta = nlohmann::ordered_json::meta(); + meta.erase("name"); + meta.erase("url"); + meta.erase("copyright"); + meta["version"] = meta["version"]["string"]; + + // strip off the parentheses added to silence clang-tidy warning + auto strip_parens = [](const std::string & str) + { + return (str[0] == '(') ? std::string(str.data() + 1, str.size() - 2) : str; + }; + std::cout << strip_parens(STRINGIZE(JSON_TEST_NAME)) << '\n'; + std::cout << meta.dump(4) << '\n' << std::endl; +} + +#ifdef JSON_TEST_PRINT_META_WITH_MAIN +int main(int /*argc*/, char* /*argv*/[]) +{ + print_meta(); + + return 0; +} +#endif diff --git a/tests/src/unit-32bit.cpp b/tests/src/unit-32bit.cpp index 82e6f33b2..c82cb3664 100644 --- a/tests/src/unit-32bit.cpp +++ b/tests/src/unit-32bit.cpp @@ -134,3 +134,5 @@ TEST_CASE("BJData") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-algorithms.cpp b/tests/src/unit-algorithms.cpp index d10c14dcf..3a7886024 100644 --- a/tests/src/unit-algorithms.cpp +++ b/tests/src/unit-algorithms.cpp @@ -295,3 +295,5 @@ TEST_CASE("algorithms") CHECK(j_array == json({false, true, 3, 13, 29, {{"one", 1}, {"two", 2}}, {1, 2, 3}, "baz", "foo"})); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-allocator.cpp b/tests/src/unit-allocator.cpp index 9e5edc4f8..51c321aa3 100644 --- a/tests/src/unit-allocator.cpp +++ b/tests/src/unit-allocator.cpp @@ -252,3 +252,5 @@ TEST_CASE("bad my_allocator::construct") j["test"].push_back("should not leak"); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-alt-string.cpp b/tests/src/unit-alt-string.cpp index 0c94d0fb9..a760c0ecd 100644 --- a/tests/src/unit-alt-string.cpp +++ b/tests/src/unit-alt-string.cpp @@ -322,3 +322,5 @@ TEST_CASE("alternative string type") CHECK(j.at(alt_json::json_pointer("/foo/1")) == j["foo"][1]); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-assert_macro.cpp b/tests/src/unit-assert_macro.cpp index e9be6b5e2..f45e41ceb 100644 --- a/tests/src/unit-assert_macro.cpp +++ b/tests/src/unit-assert_macro.cpp @@ -46,3 +46,5 @@ TEST_CASE("JSON_ASSERT(x)") DOCTEST_GCC_SUPPRESS_WARNING_POP DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-binary_formats.cpp b/tests/src/unit-binary_formats.cpp index 896bc1bdb..8c18a79ac 100644 --- a/tests/src/unit-binary_formats.cpp +++ b/tests/src/unit-binary_formats.cpp @@ -209,3 +209,5 @@ TEST_CASE("Binary Formats" * doctest::skip()) CHECK((100.0 * double(ubjson_3_size) / double(json_size)) == Approx(89.450)); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-bjdata.cpp b/tests/src/unit-bjdata.cpp index c245e87e9..52eadf5cc 100644 --- a/tests/src/unit-bjdata.cpp +++ b/tests/src/unit-bjdata.cpp @@ -3547,3 +3547,5 @@ TEST_CASE("BJData roundtrips" * doctest::skip()) } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-bson.cpp b/tests/src/unit-bson.cpp index 05fe8d3e8..3c876049e 100644 --- a/tests/src/unit-bson.cpp +++ b/tests/src/unit-bson.cpp @@ -1296,3 +1296,5 @@ TEST_CASE("BSON roundtrips" * doctest::skip()) } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-byte_container_with_subtype.cpp b/tests/src/unit-byte_container_with_subtype.cpp index c651273fe..6dd66070f 100644 --- a/tests/src/unit-byte_container_with_subtype.cpp +++ b/tests/src/unit-byte_container_with_subtype.cpp @@ -75,3 +75,5 @@ TEST_CASE("byte_container_with_subtype") CHECK(container2 == container4); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-capacity.cpp b/tests/src/unit-capacity.cpp index 858e111ad..59de2e25c 100644 --- a/tests/src/unit-capacity.cpp +++ b/tests/src/unit-capacity.cpp @@ -541,3 +541,5 @@ TEST_CASE("capacity") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-cbor.cpp b/tests/src/unit-cbor.cpp index 78bdeb2b9..66d013fe9 100644 --- a/tests/src/unit-cbor.cpp +++ b/tests/src/unit-cbor.cpp @@ -2665,3 +2665,5 @@ TEST_CASE("Tagged values") CHECK(!jb["binary"].get_binary().has_subtype()); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-class_const_iterator.cpp b/tests/src/unit-class_const_iterator.cpp index 8e0bc823e..a468d18b0 100644 --- a/tests/src/unit-class_const_iterator.cpp +++ b/tests/src/unit-class_const_iterator.cpp @@ -391,3 +391,5 @@ TEST_CASE("const_iterator class") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-class_iterator.cpp b/tests/src/unit-class_iterator.cpp index 7568d927d..711a21366 100644 --- a/tests/src/unit-class_iterator.cpp +++ b/tests/src/unit-class_iterator.cpp @@ -466,3 +466,5 @@ TEST_CASE("iterator class") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-class_lexer.cpp b/tests/src/unit-class_lexer.cpp index 9991b355e..be77916ca 100644 --- a/tests/src/unit-class_lexer.cpp +++ b/tests/src/unit-class_lexer.cpp @@ -224,3 +224,5 @@ TEST_CASE("lexer class") CHECK((scan_string("/**//**//**/", true) == json::lexer::token_type::end_of_input)); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-class_parser.cpp b/tests/src/unit-class_parser.cpp index 86dd85a7f..8115a5cf7 100644 --- a/tests/src/unit-class_parser.cpp +++ b/tests/src/unit-class_parser.cpp @@ -1689,3 +1689,5 @@ TEST_CASE("parser class") CHECK_THROWS_WITH_AS(_ = json::parse("/*", nullptr, true, true), "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid comment; missing closing '*/'; last read: '/*'", json::parse_error); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-comparison.cpp b/tests/src/unit-comparison.cpp index f713c980a..a97c50a87 100644 --- a/tests/src/unit-comparison.cpp +++ b/tests/src/unit-comparison.cpp @@ -593,3 +593,5 @@ TEST_CASE("lexicographical comparison operators") } #endif } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-concepts.cpp b/tests/src/unit-concepts.cpp index c179b0c3c..206c2dd0f 100644 --- a/tests/src/unit-concepts.cpp +++ b/tests/src/unit-concepts.cpp @@ -148,3 +148,5 @@ TEST_CASE("concepts") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-constructor1.cpp b/tests/src/unit-constructor1.cpp index f294e5cd6..b12d2a169 100644 --- a/tests/src/unit-constructor1.cpp +++ b/tests/src/unit-constructor1.cpp @@ -1569,3 +1569,5 @@ TEST_CASE("constructors") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-constructor2.cpp b/tests/src/unit-constructor2.cpp index b1b5a6ed4..411c871c6 100644 --- a/tests/src/unit-constructor2.cpp +++ b/tests/src/unit-constructor2.cpp @@ -184,3 +184,5 @@ TEST_CASE("other constructors and destructor") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-convenience.cpp b/tests/src/unit-convenience.cpp index fcb772320..948f9aa71 100644 --- a/tests/src/unit-convenience.cpp +++ b/tests/src/unit-convenience.cpp @@ -203,3 +203,5 @@ TEST_CASE("convenience functions") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-conversions.cpp b/tests/src/unit-conversions.cpp index d86b614c4..f5312ed00 100644 --- a/tests/src/unit-conversions.cpp +++ b/tests/src/unit-conversions.cpp @@ -1570,3 +1570,5 @@ TEST_CASE("JSON to enum mapping") } DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-deserialization.cpp b/tests/src/unit-deserialization.cpp index 3616f35c5..5dc1be7c8 100644 --- a/tests/src/unit-deserialization.cpp +++ b/tests/src/unit-deserialization.cpp @@ -1187,3 +1187,5 @@ TEST_CASE_TEMPLATE("deserialization of different character types (UTF-32)", T, CHECK(json::sax_parse(v, &l)); CHECK(l.events.size() == 1); } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-diagnostics.cpp b/tests/src/unit-diagnostics.cpp index a1aff57af..121d84ea8 100644 --- a/tests/src/unit-diagnostics.cpp +++ b/tests/src/unit-diagnostics.cpp @@ -244,3 +244,5 @@ TEST_CASE("Regression tests for extended diagnostics") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-disabled_exceptions.cpp b/tests/src/unit-disabled_exceptions.cpp index 6a7d5000d..eff5099fe 100644 --- a/tests/src/unit-disabled_exceptions.cpp +++ b/tests/src/unit-disabled_exceptions.cpp @@ -50,3 +50,5 @@ TEST_CASE("Tests with disabled exceptions") } DOCTEST_GCC_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-element_access1.cpp b/tests/src/unit-element_access1.cpp index f28f2f9f2..e09c64f5b 100644 --- a/tests/src/unit-element_access1.cpp +++ b/tests/src/unit-element_access1.cpp @@ -879,3 +879,5 @@ TEST_CASE("element access 1") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-element_access2.cpp b/tests/src/unit-element_access2.cpp index 5f28e5a2c..db2c5f25f 100644 --- a/tests/src/unit-element_access2.cpp +++ b/tests/src/unit-element_access2.cpp @@ -1488,3 +1488,5 @@ TEST_CASE_TEMPLATE("element access 2 (throwing tests)", Json, nlohmann::json, nl } } #endif + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-hash.cpp b/tests/src/unit-hash.cpp index 1ed21bd39..bbbbdc14c 100644 --- a/tests/src/unit-hash.cpp +++ b/tests/src/unit-hash.cpp @@ -111,3 +111,5 @@ TEST_CASE("hash") CHECK(hashes.size() == 21); } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-inspection.cpp b/tests/src/unit-inspection.cpp index c5ea684d0..7277d5f3e 100644 --- a/tests/src/unit-inspection.cpp +++ b/tests/src/unit-inspection.cpp @@ -457,3 +457,5 @@ TEST_CASE("object inspection") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-items.cpp b/tests/src/unit-items.cpp index 55d9edd39..22708061d 100644 --- a/tests/src/unit-items.cpp +++ b/tests/src/unit-items.cpp @@ -1431,3 +1431,5 @@ TEST_CASE("items()") DOCTEST_GCC_SUPPRESS_WARNING_POP DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-iterators1.cpp b/tests/src/unit-iterators1.cpp index 14bbdf844..494aac832 100644 --- a/tests/src/unit-iterators1.cpp +++ b/tests/src/unit-iterators1.cpp @@ -1628,3 +1628,5 @@ TEST_CASE("iterators 1") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-iterators2.cpp b/tests/src/unit-iterators2.cpp index 57326a289..bc53f6cf3 100644 --- a/tests/src/unit-iterators2.cpp +++ b/tests/src/unit-iterators2.cpp @@ -970,3 +970,5 @@ TEST_CASE("iterators 2") } #endif } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-json_patch.cpp b/tests/src/unit-json_patch.cpp index 3be0f8ecf..df99e2744 100644 --- a/tests/src/unit-json_patch.cpp +++ b/tests/src/unit-json_patch.cpp @@ -1319,3 +1319,5 @@ TEST_CASE("JSON patch") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-json_pointer.cpp b/tests/src/unit-json_pointer.cpp index 93559eb31..6130b215d 100644 --- a/tests/src/unit-json_pointer.cpp +++ b/tests/src/unit-json_pointer.cpp @@ -699,3 +699,5 @@ TEST_CASE("JSON pointers") CHECK_FALSE(ptr != ptr_oj); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-large_json.cpp b/tests/src/unit-large_json.cpp index 69f47df64..e59ac6502 100644 --- a/tests/src/unit-large_json.cpp +++ b/tests/src/unit-large_json.cpp @@ -27,3 +27,5 @@ TEST_CASE("tests on very large JSONs") } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-merge_patch.cpp b/tests/src/unit-merge_patch.cpp index 5098d1278..7622c0460 100644 --- a/tests/src/unit-merge_patch.cpp +++ b/tests/src/unit-merge_patch.cpp @@ -242,3 +242,5 @@ TEST_CASE("JSON Merge Patch") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-meta.cpp b/tests/src/unit-meta.cpp index ad3a841c6..a6a1f0015 100644 --- a/tests/src/unit-meta.cpp +++ b/tests/src/unit-meta.cpp @@ -34,3 +34,5 @@ TEST_CASE("version information") CHECK(j.at("compiler").find("c++") != j.at("compiler").end()); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-modifiers.cpp b/tests/src/unit-modifiers.cpp index 8b06f1809..6c74ef817 100644 --- a/tests/src/unit-modifiers.cpp +++ b/tests/src/unit-modifiers.cpp @@ -951,3 +951,5 @@ TEST_CASE("modifiers") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-msgpack.cpp b/tests/src/unit-msgpack.cpp index d0e5ff3d5..61d01f903 100644 --- a/tests/src/unit-msgpack.cpp +++ b/tests/src/unit-msgpack.cpp @@ -1835,3 +1835,5 @@ TEST_CASE("MessagePack roundtrips" * doctest::skip()) } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-noexcept.cpp b/tests/src/unit-noexcept.cpp index 89a7db7b0..6ccf6c432 100644 --- a/tests/src/unit-noexcept.cpp +++ b/tests/src/unit-noexcept.cpp @@ -80,3 +80,5 @@ TEST_CASE("runtime checks") } DOCTEST_GCC_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-ordered_json.cpp b/tests/src/unit-ordered_json.cpp index 3ce0aa155..a73949741 100644 --- a/tests/src/unit-ordered_json.cpp +++ b/tests/src/unit-ordered_json.cpp @@ -70,3 +70,5 @@ TEST_CASE("ordered_json") CHECK(oj1.size() == 4); CHECK(oj1.dump() == "{\"c\":1,\"b\":2,\"a\":3,\"d\":42}"); } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-ordered_map.cpp b/tests/src/unit-ordered_map.cpp index d907263b4..b265f0361 100644 --- a/tests/src/unit-ordered_map.cpp +++ b/tests/src/unit-ordered_map.cpp @@ -309,3 +309,5 @@ TEST_CASE("ordered_map") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-pointer_access.cpp b/tests/src/unit-pointer_access.cpp index b48a4297c..9f9b86eec 100644 --- a/tests/src/unit-pointer_access.cpp +++ b/tests/src/unit-pointer_access.cpp @@ -477,3 +477,5 @@ TEST_CASE("pointer access") CHECK(value.get_ptr() != nullptr); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-readme.cpp b/tests/src/unit-readme.cpp index 6d296f02f..fc7e643a4 100644 --- a/tests/src/unit-readme.cpp +++ b/tests/src/unit-readme.cpp @@ -303,3 +303,5 @@ TEST_CASE("README" * doctest::skip()) } DOCTEST_MSVC_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-reference_access.cpp b/tests/src/unit-reference_access.cpp index abe8bd1f5..7eb7acf9b 100644 --- a/tests/src/unit-reference_access.cpp +++ b/tests/src/unit-reference_access.cpp @@ -245,3 +245,5 @@ TEST_CASE("reference access") CHECK_NOTHROW(value.get_ref()); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-regression1.cpp b/tests/src/unit-regression1.cpp index 45c4bd620..ce500ca4d 100644 --- a/tests/src/unit-regression1.cpp +++ b/tests/src/unit-regression1.cpp @@ -1511,3 +1511,5 @@ template class number_integer {}; template class number_unsigned {}; template class number_float {}; #endif + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-regression2.cpp b/tests/src/unit-regression2.cpp index 73c8f3906..d99876038 100644 --- a/tests/src/unit-regression2.cpp +++ b/tests/src/unit-regression2.cpp @@ -926,3 +926,5 @@ TEST_CASE("regression tests 2") } DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-serialization.cpp b/tests/src/unit-serialization.cpp index 50dc58b4c..418a6038a 100644 --- a/tests/src/unit-serialization.cpp +++ b/tests/src/unit-serialization.cpp @@ -295,3 +295,5 @@ TEST_CASE("dump with binary values") "]"); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-testsuites.cpp b/tests/src/unit-testsuites.cpp index 268a48327..6c5eec77f 100644 --- a/tests/src/unit-testsuites.cpp +++ b/tests/src/unit-testsuites.cpp @@ -1389,3 +1389,5 @@ TEST_CASE("Big List of Naughty Strings") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-to_chars.cpp b/tests/src/unit-to_chars.cpp index 44d4f3801..6dcb363d7 100644 --- a/tests/src/unit-to_chars.cpp +++ b/tests/src/unit-to_chars.cpp @@ -514,3 +514,5 @@ TEST_CASE("formatting") check_integer(1000000000000000000LL, "1000000000000000000"); } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-ubjson.cpp b/tests/src/unit-ubjson.cpp index 5086149ce..6f7773703 100644 --- a/tests/src/unit-ubjson.cpp +++ b/tests/src/unit-ubjson.cpp @@ -2515,3 +2515,5 @@ TEST_CASE("UBJSON roundtrips" * doctest::skip()) } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-udl.cpp b/tests/src/unit-udl.cpp index 934744364..238bdbc5d 100644 --- a/tests/src/unit-udl.cpp +++ b/tests/src/unit-udl.cpp @@ -55,3 +55,5 @@ TEST_CASE("user-defined string literals") } #endif } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-udt.cpp b/tests/src/unit-udt.cpp index 681536f95..e7520b456 100644 --- a/tests/src/unit-udt.cpp +++ b/tests/src/unit-udt.cpp @@ -862,3 +862,5 @@ TEST_CASE("compatible array type, without iterator type alias") } DOCTEST_GCC_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-udt_macro.cpp b/tests/src/unit-udt_macro.cpp index eed81cdfa..d2b61303e 100644 --- a/tests/src/unit-udt_macro.cpp +++ b/tests/src/unit-udt_macro.cpp @@ -412,3 +412,5 @@ TEST_CASE_TEMPLATE("Serialization/deserialization of classes with 26 public/priv } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-unicode1.cpp b/tests/src/unit-unicode1.cpp index 03c5b8006..9eb59eab5 100644 --- a/tests/src/unit-unicode1.cpp +++ b/tests/src/unit-unicode1.cpp @@ -618,3 +618,5 @@ TEST_CASE("Markus Kuhn's UTF-8 decoder capability and stress test") } } } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-unicode2.cpp b/tests/src/unit-unicode2.cpp index b91d0be86..7025898c1 100644 --- a/tests/src/unit-unicode2.cpp +++ b/tests/src/unit-unicode2.cpp @@ -608,3 +608,5 @@ TEST_CASE("Unicode (2/5)" * doctest::skip()) } DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-unicode3.cpp b/tests/src/unit-unicode3.cpp index d5740e3e0..dd3fb6465 100644 --- a/tests/src/unit-unicode3.cpp +++ b/tests/src/unit-unicode3.cpp @@ -322,3 +322,5 @@ TEST_CASE("Unicode (3/5)" * doctest::skip()) } DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-unicode4.cpp b/tests/src/unit-unicode4.cpp index 0a7a58bc3..7f14114f1 100644 --- a/tests/src/unit-unicode4.cpp +++ b/tests/src/unit-unicode4.cpp @@ -322,3 +322,5 @@ TEST_CASE("Unicode (4/5)" * doctest::skip()) } DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-unicode5.cpp b/tests/src/unit-unicode5.cpp index 2360dbe36..d788974eb 100644 --- a/tests/src/unit-unicode5.cpp +++ b/tests/src/unit-unicode5.cpp @@ -322,3 +322,5 @@ TEST_CASE("Unicode (5/5)" * doctest::skip()) } DOCTEST_CLANG_SUPPRESS_WARNING_POP + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-user_defined_input.cpp b/tests/src/unit-user_defined_input.cpp index a3095a8d9..22ba09b34 100644 --- a/tests/src/unit-user_defined_input.cpp +++ b/tests/src/unit-user_defined_input.cpp @@ -128,3 +128,5 @@ TEST_CASE("Custom iterator") } } // namespace + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-windows_h.cpp b/tests/src/unit-windows_h.cpp index 5fa641091..5dd852f9a 100644 --- a/tests/src/unit-windows_h.cpp +++ b/tests/src/unit-windows_h.cpp @@ -19,3 +19,5 @@ TEST_CASE("include windows.h") { CHECK(true); } + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit-wstring.cpp b/tests/src/unit-wstring.cpp index b8ed08db8..01d6f5a24 100644 --- a/tests/src/unit-wstring.cpp +++ b/tests/src/unit-wstring.cpp @@ -97,3 +97,5 @@ TEST_CASE("wide strings") } } #endif + +#include "print_meta.cpp" // NOLINT(bugprone-suspicious-include) diff --git a/tests/src/unit.cpp b/tests/src/unit.cpp index 8074687a5..d598d43c6 100644 --- a/tests/src/unit.cpp +++ b/tests/src/unit.cpp @@ -6,5 +6,17 @@ // SPDX-FileCopyrightText: 2013-2022 Niels Lohmann // SPDX-License-Identifier: MIT -#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN +#define DOCTEST_CONFIG_IMPLEMENT #include "doctest_compatibility.h" + +// defined in print_meta.cpp which is automatically appended to each unit test +extern void print_meta(); + +DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4007) +int main(int argc, char* argv[]) +{ + print_meta(); + + return doctest::Context(argc, argv).run(); +} +DOCTEST_MSVC_SUPPRESS_WARNING_POP