test: add google tests

This commit is contained in:
Kristofers Solo 2024-03-14 02:24:16 +02:00
parent 29f9e60a33
commit 6b7f41e41a
2 changed files with 37 additions and 1 deletions

View File

@ -7,11 +7,37 @@ project(
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# GoogleTest requires at least C++14
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
enable_testing()
add_subdirectory(src/modules)
add_executable(main src/main.cc)
add_executable(test_validation src/test_validation.cc)
add_library(validation src/validation.cc src/validation.hh)
target_link_libraries(main PUBLIC validation)
target_link_libraries(validation PUBLIC modules)
target_link_libraries(validation PRIVATE modules)
target_include_directories(main PUBLIC "${PROJECT_BINARY_DIR}"
"${PROJECT_SOURCE_DIR}/modules")
target_include_directories(
test_validation PUBLIC "${PROJECT_BINARY_DIR}"
"${PROJECT_SOURCE_DIR}/modules")
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt
ON
CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
include(GoogleTest)
target_link_libraries(test_validation PRIVATE GTest::gtest_main)
gtest_discover_tests(test_validation)

10
src/test_validation.cc Normal file
View File

@ -0,0 +1,10 @@
#include "gtest/gtest.h"
TEST(ExampleTest, Example) {
EXPECT_EQ(1, 1);
}
int main(int argc, char *argv[]) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}