diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a90697b..4ebee49 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -16,6 +16,11 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${TEST_SOURCE_FILES} ${TEST_ add_executable(Test ${TEST_SOURCE_FILES} ${TEST_HEADER_FILES}) +if ((NOT MSVC) AND (CMAKE_BUILD_TYPE MATCHES Debug)) + target_compile_options(Test PUBLIC -fsanitize=address,undefined,unsigned-integer-overflow -fno-sanitize-recover=address,undefined,unsigned-integer-overflow -fno-omit-frame-pointer) + target_link_options(Test PUBLIC -fsanitize=address,undefined,unsigned-integer-overflow -fno-sanitize-recover=address,undefined,unsigned-integer-overflow -fno-omit-frame-pointer) +endif () + target_link_libraries(Test PUBLIC quicktex gtest_main) include(GoogleTest) diff --git a/tests/ctest/TestMatrix.cpp b/tests/ctest/TestMatrix.cpp index 8fbd347..092523c 100644 --- a/tests/ctest/TestMatrix.cpp +++ b/tests/ctest/TestMatrix.cpp @@ -60,7 +60,7 @@ template class MatrixTest : public testing::Test { template constexpr M sqr(T start = 0, T stride = 1) { M result(0); for (unsigned i = 0; i < M::elements; i++) { - result.element(i) = static_cast((i + start) * (i + start) * stride); + result.element(i) = (static_cast(i) + start) * (static_cast(i) + start) * stride; } return result; } @@ -219,7 +219,7 @@ TYPED_TEST(MatrixTest, sum) { } if constexpr (!std::unsigned_integral) { - EXPECT_FLOAT_EQ(M(-1).sum(), -1 * (int) M::elements); + EXPECT_FLOAT_EQ(M(-1).sum(), -1 * (int)M::elements); } }); }