From 07edd92023dc358a3fff5f035ab27b9062128b41 Mon Sep 17 00:00:00 2001 From: Godzil Date: Thu, 26 May 2022 16:40:58 +0100 Subject: [PATCH] Add google test for testing the library. --- .gitmodules | 3 +++ CMakeLists.txt | 8 ++++++++ external/googletest | 1 + test/CMakeLists.txt | 19 +++++++++++++++++++ test/fs_opening.cpp | 7 +++++++ 5 files changed, 38 insertions(+) create mode 160000 external/googletest create mode 100644 test/CMakeLists.txt create mode 100644 test/fs_opening.cpp diff --git a/.gitmodules b/.gitmodules index e93cb53..07995e7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "external/cJSON"] path = external/cJSON url = https://github.com/DaveGamble/cJSON.git +[submodule "external/googletest"] + path = external/googletest + url = https://github.com/google/googletest.git diff --git a/CMakeLists.txt b/CMakeLists.txt index f7b9bd4..80392b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ set(BUILD_PLATFORM MEMORY CACHE STRING "Platform to build for") set_property(CACHE BUILD_PLATFORM PROPERTY STRINGS ${VALID_BUILD_PLATFORM}) option(BUILD_HOST_TOOLS "Build offline tools" ON) +option(RUN_TESTS "Run the test suite to verify everything is ok!" ON) string(TOLOWER ${BUILD_PLATFORM} PLATFORM_FILE) @@ -39,3 +40,10 @@ if (BUILD_HOST_TOOLS) target_compile_definitions(mffs PRIVATE BUILD_PLATFORM_FILE) target_compile_definitions(mffs PRIVATE BUILD_HOST_TOOLS) endif() + +if(RUN_TESTS) + enable_testing() + include(GoogleTest) + add_subdirectory("${PROJECT_SOURCE_DIR}/external/googletest" "external/googletest") + add_subdirectory(test) +endif() \ No newline at end of file diff --git a/external/googletest b/external/googletest new file mode 160000 index 0000000..56246cd --- /dev/null +++ b/external/googletest @@ -0,0 +1 @@ +Subproject commit 56246cdb94de94f7f43c9df59635db92c41d4064 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..643d035 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,19 @@ +project(MiniFFSTests) + +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) + +include_directories(../includes) +link_libraries(miniffs) + +set(TESTS_SRC fs_opening.cpp) + +add_executable(miniffs_test) +target_include_directories(miniffs_test PUBLIC ${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR}) +target_sources(miniffs_test PRIVATE ${TESTS_SRC}) +target_link_libraries(miniffs_test gtest gtest_main Threads::Threads) + +gtest_discover_tests(miniffs_test + WORKING_DIRECTORY ${PROJECT_DIR} + PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${PROJECT_DIR}" +) diff --git a/test/fs_opening.cpp b/test/fs_opening.cpp new file mode 100644 index 0000000..64e7fb2 --- /dev/null +++ b/test/fs_opening.cpp @@ -0,0 +1,7 @@ +/****************************************************************************** + * MiniFFS : Mini Flat File System + * This file is part of the test suite of MiniFFS + * + * Copyright (c) 2008-2022 986-Studio. All rights reserved. + * + ******************************************************************************/ \ No newline at end of file