diff --git a/tests/macros_test.cpp b/tests/macros_test.cpp index 2860bce..82f0c59 100644 --- a/tests/macros_test.cpp +++ b/tests/macros_test.cpp @@ -28,7 +28,12 @@ BX_NO_INLINE void unusedFunction() CHECK(false); } -TEST(macros) +void testAssert() +{ + BX_ASSERT(false, "Assert works!"); +} + +TEST_CASE("Macros", "") { uint32_t unused0; BX_UNUSED(unused0); @@ -39,38 +44,40 @@ TEST(macros) uint32_t unused2; BX_UNUSED(unused0, unused1, unused2, unusedFunction() ); - CHECK_EQUAL(1, BX_VA_ARGS_COUNT(1) ); - CHECK_EQUAL(2, BX_VA_ARGS_COUNT(1, 2) ); - CHECK_EQUAL(3, BX_VA_ARGS_COUNT(1, 2, 3) ); - CHECK_EQUAL(4, BX_VA_ARGS_COUNT(1, 2, 3, 4) ); - CHECK_EQUAL(5, BX_VA_ARGS_COUNT(1, 2, 3, 4, 5) ); - CHECK_EQUAL(6, BX_VA_ARGS_COUNT(1, 2, 3, 4, 5, 6) ); + REQUIRE(1 == BX_VA_ARGS_COUNT(1) ); + REQUIRE(2 == BX_VA_ARGS_COUNT(1, 2) ); + REQUIRE(3 == BX_VA_ARGS_COUNT(1, 2, 3) ); + REQUIRE(4 == BX_VA_ARGS_COUNT(1, 2, 3, 4) ); + REQUIRE(5 == BX_VA_ARGS_COUNT(1, 2, 3, 4, 5) ); + REQUIRE(6 == BX_VA_ARGS_COUNT(1, 2, 3, 4, 5, 6) ); - CHECK_EQUAL(0, bx::strCmp(BX_STRINGIZE(TEST 1234 %^&*), "TEST 1234 %^&*") ); + REQUIRE(0 == bx::strCmp(BX_STRINGIZE(TEST 1234 %^&*), "TEST 1234 %^&*") ); { struct PodStruct { int32_t x, y, z; }; - CHECK_EQUAL(0, BX_OFFSETOF(PodStruct, x) ); - CHECK_EQUAL(4, BX_OFFSETOF(PodStruct, y) ); - CHECK_EQUAL(8, BX_OFFSETOF(PodStruct, z) ); + REQUIRE(0 == BX_OFFSETOF(PodStruct, x) ); + REQUIRE(4 == BX_OFFSETOF(PodStruct, y) ); + REQUIRE(8 == BX_OFFSETOF(PodStruct, z) ); } { union PodUnion { int32_t x, y, z; }; - CHECK_EQUAL(BX_OFFSETOF(PodUnion, x), BX_OFFSETOF(PodUnion, y) ); - CHECK_EQUAL(BX_OFFSETOF(PodUnion, y), BX_OFFSETOF(PodUnion, z) ); + REQUIRE(BX_OFFSETOF(PodUnion, x) == BX_OFFSETOF(PodUnion, y) ); + REQUIRE(BX_OFFSETOF(PodUnion, y) == BX_OFFSETOF(PodUnion, z) ); } { struct NonPodStruct { NonPodStruct() { } int32_t x, y, z; }; - CHECK_EQUAL(0, BX_OFFSETOF(NonPodStruct, x) ); - CHECK_EQUAL(4, BX_OFFSETOF(NonPodStruct, y) ); - CHECK_EQUAL(8, BX_OFFSETOF(NonPodStruct, z) ); + REQUIRE(0 == BX_OFFSETOF(NonPodStruct, x) ); + REQUIRE(4 == BX_OFFSETOF(NonPodStruct, y) ); + REQUIRE(8 == BX_OFFSETOF(NonPodStruct, z) ); } { union NonPodUnion { NonPodUnion() { } int32_t x, y, z; }; - CHECK_EQUAL(BX_OFFSETOF(NonPodUnion, x), BX_OFFSETOF(NonPodUnion, y) ); - CHECK_EQUAL(BX_OFFSETOF(NonPodUnion, y), BX_OFFSETOF(NonPodUnion, z) ); + REQUIRE(BX_OFFSETOF(NonPodUnion, x) == BX_OFFSETOF(NonPodUnion, y) ); + REQUIRE(BX_OFFSETOF(NonPodUnion, y) == BX_OFFSETOF(NonPodUnion, z) ); } + + REQUIRE_ASSERTS(testAssert() ); } diff --git a/tests/run_test.cpp b/tests/run_test.cpp index 48b1d3a..acb459b 100644 --- a/tests/run_test.cpp +++ b/tests/run_test.cpp @@ -14,7 +14,7 @@ bool testAssertHandler(const bx::Location& _location, const char* _format, va_li bx::printf("\n"); // Throwing exceptions is required for testing asserts being trigged. - // Use REQUIRE_THROWS to test asserts. + // Use REQUIRE_ASSERTS to test asserts. throw std::exception(); return true; diff --git a/tests/test.h b/tests/test.h index d6eec65..83d6e4d 100644 --- a/tests/test.h +++ b/tests/test.h @@ -14,7 +14,12 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4312); // warning C4312 : 'reinterpret_cast' : BX_PRAGMA_DIAGNOSTIC_POP(); #define TEST(_x) TEST_CASE(#_x, "") -#define CHECK_EQUAL(_x, _y) REQUIRE(_x == _y) + +#if BX_CONFIG_DEBUG +# define REQUIRE_ASSERTS(_x) REQUIRE_THROWS(_x) +#else +# define REQUIRE_ASSERTS(_x) BX_UNUSED(_x) +#endif // BX_CONFIG_DEBUG #include "dbg.h"