json/include/nlohmann/detail
Florian Albrechtskirchinger ad103e5b45
Improve unit testing (Part 1) (#3380)
* Refactor unit test creation

Add functions for creating tests and to supply test- and
standard-specific build settings.

Raises minimum CMake version to 3.13 in test directory.

json_test_add_test_for(
    <file>
    MAIN <main>
    [CXX_STANDARDS <version_number>...] [FORCE])

Given a <file> unit-foo.cpp, produces

    test-foo_cpp<version_number>

if C++ standard <version_number> is supported by the compiler and
thesource file contains JSON_HAS_CPP_<version_number>.  Use FORCE to
create the test regardless of the file containing
JSON_HAS_CPP_<version_number>.  Test targets are linked against <main>.
CXX_STANDARDS defaults to "11".

json_test_set_test_options(
    all|<tests>
    [CXX_STANDARDS all|<args>...]
    [COMPILE_DEFINITIONS <args>...]
    [COMPILE_FEATURES <args>...]
    [COMPILE_OPTIONS <args>...]
    [LINK_LIBRARIES <args>...]
    [LINK_OPTIONS <args>...])

Supply test- and standard-specific build settings.
Specify multiple tests using a list e.g., "test-foo;test-bar".

Must be called BEFORE the test is created.

* Use CMAKE_MODULE_PATH

* Don't undef some macros if JSON_TEST_KEEP_MACROS is defined

* Use JSON_TEST_KEEP_MACROS

Incidentally enables the regression tests for #2546 and #3070.

A CHECK_THROWS_WITH_AS in #3070 was disabled which is tracked in #3377
and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.

* Add three-way comparison feature test macro

* Disable broken comparison if JSON_HAS_THREE_WAY_COMPARISON

* Fix redefinition of inline constexpr statics

Redelcaration of inline constexpr static data members in namespace scope
was deprecated in C++17. Fixes -Werror=deprecated compilation failures.

* Fix more test build failures due to missing noexcept

* CI: update cmake_flags test to use CMake 3.13 in test directory

Also change default for JSON_BuildTests option to depend on CMake
version.

* CI: turn *_CXXFLAGS into CMake lists

* CI: use JSON_TestStandards to set CXX_STANDARD

* CI: pass extra CXXFLAGS to standards tests
2022-03-24 07:54:07 +01:00
..
conversions Improve unit testing (Part 1) (#3380) 2022-03-24 07:54:07 +01:00
input Consolidate documentation (#3071) 2021-12-29 13:41:01 +01:00
iterators Make iterator operator++/--(int) equality-preserving (#3332) 2022-03-08 10:10:50 +01:00
meta Improve unit testing (Part 1) (#3380) 2022-03-24 07:54:07 +01:00
output ♻️ make function static 2022-01-05 21:21:46 +01:00
exceptions.hpp Consolidate documentation (#3071) 2021-12-29 13:41:01 +01:00
hash.hpp 🐛 adding missing header 2021-08-18 13:33:35 +02:00
json_pointer.hpp Consolidate documentation (#3071) 2021-12-29 13:41:01 +01:00
json_ref.hpp 🚨 add new CI and fix warnings (#2561) 2021-03-24 07:15:18 +01:00
macro_scope.hpp Improve unit testing (Part 1) (#3380) 2022-03-24 07:54:07 +01:00
macro_unscope.hpp Improve unit testing (Part 1) (#3380) 2022-03-24 07:54:07 +01:00
string_escape.hpp 🐛 proper JSON Pointer escape in diagnostic messages 2021-01-16 15:33:05 +01:00
value_t.hpp 🚨 fix warnings 2021-01-10 13:39:36 +01:00