aboutsummaryrefslogtreecommitdiff
path: root/src/tests/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/CMakeLists.txt')
-rw-r--r--src/tests/CMakeLists.txt53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
new file mode 100644
index 0000000..8e71366
--- /dev/null
+++ b/src/tests/CMakeLists.txt
@@ -0,0 +1,53 @@
+cmake_minimum_required(VERSION 3.16)
+
+find_package(Qt6 REQUIRED COMPONENTS Core)
+find_package(GTest REQUIRED)
+
+# ---------------------------------------------------------------------------
+# meta.ini case-normalization helper tests
+# ---------------------------------------------------------------------------
+add_executable(test_metainiutils EXCLUDE_FROM_ALL
+ test_metainiutils.cpp
+ ${CMAKE_SOURCE_DIR}/src/src/metainiutils.cpp
+)
+set_target_properties(test_metainiutils PROPERTIES
+ AUTOMOC OFF
+ CXX_STANDARD 23
+ CXX_STANDARD_REQUIRED ON
+)
+target_include_directories(test_metainiutils PRIVATE
+ ${CMAKE_SOURCE_DIR}/src/src
+)
+target_link_libraries(test_metainiutils PRIVATE
+ Qt6::Core
+ GTest::gtest
+ GTest::gtest_main
+)
+add_test(NAME test_metainiutils COMMAND test_metainiutils)
+
+# ---------------------------------------------------------------------------
+# External directory mapping (SKSE Log Redirector style) tests
+#
+# Exercises the deploy/cleanup logic for `isDirectory && createTarget`
+# mappings — directory-symlink path plus the per-file fallback when the
+# destination already has real content. The behavior is mirrored from
+# FuseConnector::deployExternalMappings so the test can run without
+# bringing in libfuse or the rest of the organizer dependency tree.
+# ---------------------------------------------------------------------------
+add_executable(test_external_dir_mapping EXCLUDE_FROM_ALL
+ test_external_dir_mapping.cpp
+)
+set_target_properties(test_external_dir_mapping PROPERTIES
+ AUTOMOC OFF
+ CXX_STANDARD 23
+ CXX_STANDARD_REQUIRED ON
+)
+target_link_libraries(test_external_dir_mapping PRIVATE
+ GTest::gtest
+ GTest::gtest_main
+)
+add_test(NAME test_external_dir_mapping COMMAND test_external_dir_mapping)
+
+# Register a "fluorine-tests" umbrella target that builds every test exe.
+add_custom_target(fluorine-tests
+ DEPENDS test_metainiutils test_external_dir_mapping)