summaryrefslogtreecommitdiff
path: root/deps/fff/test/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'deps/fff/test/CMakeLists.txt')
-rw-r--r--deps/fff/test/CMakeLists.txt87
1 files changed, 87 insertions, 0 deletions
diff --git a/deps/fff/test/CMakeLists.txt b/deps/fff/test/CMakeLists.txt
new file mode 100644
index 0000000..d4ccbf8
--- /dev/null
+++ b/deps/fff/test/CMakeLists.txt
@@ -0,0 +1,87 @@
+# Copyright 2022 Google LLC
+# SPDX-License-Identifier: Apache-2.0
+
+# Create a list of common files needed for tests
+set(
+ COMMON_FILE_LIST
+ include/c_test_framework.h
+ src/test_cases.include
+)
+
+include(FetchContent)
+
+FetchContent_Declare(
+ googletest
+ GIT_REPOSITORY https://github.com/google/googletest.git
+ GIT_TAG v1.12.0
+)
+
+set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+FetchContent_MakeAvailable(googletest)
+
+# Create the C test executable
+add_executable(c_test src/fff_test_c.c ${COMMON_FILE_LIST})
+target_include_directories(c_test PRIVATE include)
+target_link_libraries(c_test PRIVATE fff)
+
+# Create the C++ test executable
+add_executable(cpp_test src/fff_test_cpp.cpp ${COMMON_FILE_LIST})
+target_include_directories(cpp_test PRIVATE include)
+target_link_libraries(cpp_test PRIVATE GTest::gtest_main fff)
+
+# Create the C global test executable
+add_executable(c_global_test
+ src/fff_test_global_c.c
+ src/global_fakes.c
+ include/global_fakes.h
+ ${COMMON_FILE_LIST}
+)
+target_include_directories(c_global_test PRIVATE include)
+target_link_libraries(c_global_test PRIVATE fff)
+
+# Create the C++ global test executable
+add_executable(cpp_global_test
+ src/fff_test_global_cpp.cpp
+ src/global_fakes.c
+ include/global_fakes.h
+ ${COMMON_FILE_LIST}
+)
+target_include_directories(cpp_global_test PRIVATE include)
+target_link_libraries(cpp_global_test PRIVATE GTest::gtest_main fff)
+
+# Create the C++ custom function signature executable
+add_executable(cpp_custom_fn_signature_test
+ src/fff_test_custom_function_template.cpp
+ ${COMMON_FILE_LIST}
+)
+target_include_directories(cpp_custom_fn_signature_test PRIVATE include)
+target_link_libraries(cpp_custom_fn_signature_test PRIVATE GTest::gtest_main fff)
+# Due to a bug in WinLibs for Windows it's not currently possible to use:
+# target_precompile_headers(cpp_custom_fn_signature_test PUBLIC include/custom_function.hpp)
+# See more info at target_precompile_headers(cpp_custom_fn_signature_test PUBLIC include/custom_function.hpp)
+
+add_test(
+ NAME cpp_custom_fn_signature_test
+ COMMAND $<TARGET_FILE:cpp_custom_fn_signature_test>
+ )
+
+# Add the tests for ctest
+add_test(
+ NAME c_test
+ COMMAND $<TARGET_FILE:c_test>
+)
+
+add_test(
+ NAME cpp_test
+ COMMAND $<TARGET_FILE:cpp_test>
+)
+
+add_test(
+ NAME c_global_test
+ COMMAND $<TARGET_FILE:c_global_test>
+)
+
+add_test(
+ NAME cpp_global_test
+ COMMAND $<TARGET_FILE:cpp_global_test>
+) \ No newline at end of file