Tweaks and fixes for Assert

This commit is contained in:
Deukhoofd 2020-03-22 12:20:39 +01:00
parent 638a414961
commit e07e07253d
Signed by: Deukhoofd
GPG Key ID: ADF2E9256009EDCE
3 changed files with 14 additions and 14 deletions

View File

@ -116,6 +116,8 @@ Standard: Cpp11
StatementMacros: StatementMacros:
- Q_UNUSED - Q_UNUSED
- QT_REQUIRE_VERSION - QT_REQUIRE_VERSION
- Assert
- AssertNotNull
TabWidth: 8 TabWidth: 8
UseTab: Never UseTab: Never
... ...

View File

@ -6,15 +6,15 @@
#ifndef NO_ASSERT #ifndef NO_ASSERT
#define Assert(expr) \ #define Assert(expr) \
if (!(expr)) { \ if (!(expr)) { \
std::stringstream ss; \ std::stringstream ss; \
ss << "ASSERTION FAILED: [" << __FILENAME__ << " (" << __LINE__ << ")] \""; \ ss << "ASSERTION FAILED: [" << __FILENAME__ << " (" << __LINE__ << ")] \""; \
ss << #expr << "\""; \ ss << #expr << "\""; \
throw std::logic_error(ss.str()); \ throw std::logic_error(ss.str()); \
} }
#else #else
// Assert is empty if NO_ASSERT is defined. // Assert is empty if NO_ASSERT is defined.
#define Assert(expr) #define Assert(expr) ;
#endif #endif
#define AssertNotNull(value) Assert(value != nullptr); #define AssertNotNull(value) Assert(value != nullptr)

View File

@ -1,11 +1,9 @@
#include "../extern/catch.hpp" #include "../extern/catch.hpp"
#include "../src/Assert.hpp" #include "../src/Assert.hpp"
void TestWrapper(bool wrapperExpression) { Assert(wrapperExpression) } void TestWrapper(bool wrapperExpression) { Assert(wrapperExpression) }
void TestWrapperNotNull(void* value){AssertNotNull(value)} void TestWrapperNotNull(void* value) { AssertNotNull(value) }
TEST_CASE("Assert succeeds if true", "[Utilities]") { TEST_CASE("Assert succeeds if true", "[Utilities]") { REQUIRE_NOTHROW(TestWrapper(true)); }
REQUIRE_NOTHROW(TestWrapper(true));
}
TEST_CASE("Assert throws if false", "[Utilities]") { REQUIRE_THROWS(TestWrapper(false)); } TEST_CASE("Assert throws if false", "[Utilities]") { REQUIRE_THROWS(TestWrapper(false)); }
@ -15,9 +13,9 @@ TEST_CASE("Assert throws if false with message", "[Utilities]") {
} }
TEST_CASE("Multiple asserts", "[Utilities]") { TEST_CASE("Multiple asserts", "[Utilities]") {
Assert(true); Assert(true)
Assert(true); Assert(true)
Assert(true); Assert(true)
} }
TEST_CASE("AssertNotNull throws if nullptr", "[Utilities]") { REQUIRE_THROWS(TestWrapperNotNull(nullptr)); } TEST_CASE("AssertNotNull throws if nullptr", "[Utilities]") { REQUIRE_THROWS(TestWrapperNotNull(nullptr)); }