doctest

FORK: The fastest feature-rich C++11/14/17/20 single-header testing framework
git clone https://git.neptards.moe/neptards/doctest.git
Log | Files | Refs | README

assert_returns_disabled.cpp (1071B)


      1 #define DOCTEST_CONFIG_ASSERTS_RETURN_VALUES
      2 #include <doctest/doctest.h>
      3 
      4 DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN
      5 #include <iostream>
      6 DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END
      7 
      8 #ifndef TEST_FLIP
      9 #define TEST_FLIP 0
     10 #endif
     11 
     12 #define TEST_FAIL() std::cout << "FAILED ON: " << __LINE__ \
     13     << "(" << (TEST_FLIP ? "EVALUATED" : "DISABLED") << ")" << std::endl
     14 
     15 static int test_disabled_var_ = [] { // NOLINT
     16     // none may return true
     17     if (TEST_FLIP ^ CHECK(0 == 0)) { TEST_FAIL(); }
     18     if (TEST_FLIP ^ CHECK_FALSE(0 != 0)) { TEST_FAIL(); }
     19     if (TEST_FLIP ^ CHECK_EQ(0, 0)) { TEST_FAIL(); }
     20     if (TEST_FLIP ^ CHECK_UNARY(true)) { TEST_FAIL(); }
     21     if (TEST_FLIP ^ CHECK_UNARY_FALSE(false)) { TEST_FAIL(); }
     22 #ifndef DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS
     23     int i = 2; (void)i;
     24     if (TEST_FLIP ^ CHECK_THROWS([=] { throw i; }())) { TEST_FAIL(); }
     25     if (TEST_FLIP ^ CHECK_THROWS_AS([=] { throw i; }(), int)) { TEST_FAIL(); }
     26     if (TEST_FLIP ^ CHECK_NOTHROW([=]{ }())) { TEST_FAIL(); }
     27 #endif
     28 
     29     return 0;
     30 }();