Initial commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# NOTE: VARIABLES
|
||||
|
||||
# Define the path to the directory with SQL scripts
|
||||
set(SQL_SCRIPTS_DIR "${CMAKE_SOURCE_DIR}/core/sql")
|
||||
set(SQL_DEST_DIR "${CMAKE_CURRENT_BINARY_DIR}/core/sql")
|
||||
|
||||
# Define directories for tests
|
||||
set(TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests")
|
||||
set(TESTS_SOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests_sources")
|
||||
|
||||
# Specify paths to test files
|
||||
set(TEST_FILES
|
||||
${TESTS_DIR}/main_test.cpp
|
||||
${TESTS_DIR}/sqlite_database_crud_test.cpp
|
||||
${TESTS_DIR}/sqlite_database_foreign_key_test.cpp
|
||||
${TESTS_DIR}/sqlite_database_trigger_test.cpp
|
||||
)
|
||||
|
||||
# Specify paths to test sources
|
||||
set(TEST_SOURCES
|
||||
${TESTS_SOURCES_DIR}/sqlite_database.cpp
|
||||
${TESTS_SOURCES_DIR}/sqlite_file_executor.cpp
|
||||
${TESTS_SOURCES_DIR}/sqlite_statement.cpp
|
||||
${TESTS_SOURCES_DIR}/file_reader.cpp
|
||||
)
|
||||
|
||||
# NOTE: OUTPUT
|
||||
|
||||
# Output test file paths to console
|
||||
message(STATUS "Test files: ${TEST_FILES}")
|
||||
message(STATUS "Test sources: ${TEST_SOURCES}")
|
||||
|
||||
# Output variable values to console
|
||||
message(STATUS "Tests directory: ${TESTS_DIR}")
|
||||
message(STATUS "Test sources directory: ${TESTS_SOURCES_DIR}")
|
||||
message(STATUS "SQL scripts source directory: ${SQL_SCRIPTS_DIR}")
|
||||
message(STATUS "SQL scripts destination directory: ${SQL_DEST_DIR}")
|
||||
|
||||
# NOTE: BUILD
|
||||
|
||||
# Create the test executable
|
||||
add_executable(tests_schema ${TEST_FILES} ${TEST_SOURCES})
|
||||
|
||||
# Include directories for headers
|
||||
include_directories(${TESTS_SOURCES_DIR})
|
||||
|
||||
# Link the test executable with required libraries
|
||||
target_link_libraries(tests_schema PRIVATE
|
||||
GTest::GTest
|
||||
GTest::Main
|
||||
SQLite::SQLite3
|
||||
)
|
||||
|
||||
# NOTE: BUILD END
|
||||
|
||||
# Copy SQL scripts to the build directory
|
||||
add_custom_target(copy_sql_files ALL
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${SQL_DEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SQL_SCRIPTS_DIR}/*.sql ${SQL_DEST_DIR}
|
||||
COMMENT "Copying SQL scripts to ${SQL_DEST_DIR}"
|
||||
)
|
||||
|
||||
# Ensure SQL scripts are copied before running tests
|
||||
add_dependencies(tests_schema copy_sql_files)
|
||||
|
||||
# Pass the SQL scripts path to the tests via a macro
|
||||
target_compile_definitions(tests_schema PRIVATE SQL_SCRIPTS_PATH="${SQL_DEST_DIR}")
|
||||
|
||||
# Register the tests
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(tests_schema)
|
||||
|
||||
Reference in New Issue
Block a user