From 28ef87370be43ee4ea0d35c33097202c2d71fd2e Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Mon, 6 Jul 2020 13:19:06 +0200 Subject: [PATCH] :rotating_light: fix warning --- Makefile | 2 ++ test/src/unit-assert_macro.cpp | 25 +++++++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index ff62d6e7d..3d296baf9 100644 --- a/Makefile +++ b/Makefile @@ -97,6 +97,7 @@ doctest: # -Wno-exit-time-destructors: warning in json code triggered by NLOHMANN_JSON_SERIALIZE_ENUM # -Wno-float-equal: not all comparisons in the tests can be replaced by Approx # -Wno-keyword-macro: unit-tests use "#define private public" +# -Wno-missing-prototypes: for NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE # -Wno-padded: padding is nothing to warn about # -Wno-range-loop-analysis: items tests "for(const auto i...)" # -Wno-switch-enum -Wno-covered-switch-default: pedantic/contradicting warnings about switches @@ -113,6 +114,7 @@ pedantic_clang: -Wno-exit-time-destructors \ -Wno-float-equal \ -Wno-keyword-macro \ + -Wno-missing-prototypes \ -Wno-padded \ -Wno-range-loop-analysis \ -Wno-switch-enum -Wno-covered-switch-default \ diff --git a/test/src/unit-assert_macro.cpp b/test/src/unit-assert_macro.cpp index 009a2b0b4..c5cd3a011 100644 --- a/test/src/unit-assert_macro.cpp +++ b/test/src/unit-assert_macro.cpp @@ -27,24 +27,33 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +// avoid warning when assert does not abort +#if defined(__GNUC__) + #pragma GCC diagnostic ignored "-Wstrict-overflow" +#endif + #include "doctest_compatibility.h" /// global variable to record side effect of assert calls -int assert_counter = 0; +static int assert_counter; /// set failure variable to true instead of calling assert(x) -#define JSON_ASSERT(x) if (!(x)) ++assert_counter; +#define JSON_ASSERT(x) {if (!(x)) ++assert_counter; } #include using nlohmann::json; TEST_CASE("JSON_ASSERT(x)") { - const json j = {{"bar", 1}}; - CHECK(assert_counter == 0); + assert_counter = 0; + const json j = {{"bar", 1}}; + CHECK(assert_counter == 0); - // accessing non-exising key in const value would assert - j["foo"] == 1; + // accessing non-existing key in const value would assert + if (j["foo"] == 1) + { + CHECK(true); + } - CHECK(assert_counter == 1); -} \ No newline at end of file + CHECK(assert_counter == 1); +}