2025-10-02 22:16:27 +01:00
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
|
|
|
|
2022-05-28 11:41:19 +01:00
|
|
|
# 'Google_test' is the subproject name
|
|
|
|
|
project(tests)
|
|
|
|
|
|
|
|
|
|
# 'lib' is the folder with Google Test sources
|
2025-10-08 12:45:25 +01:00
|
|
|
set(_aaru_saved_warn_deprecated __aaru_warn_not_set__)
|
|
|
|
|
if(DEFINED CMAKE_WARN_DEPRECATED)
|
2025-10-09 17:00:45 +01:00
|
|
|
set(_aaru_saved_warn_deprecated ${CMAKE_WARN_DEPRECATED})
|
2025-10-08 12:45:25 +01:00
|
|
|
endif()
|
|
|
|
|
set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "" FORCE)
|
|
|
|
|
|
2022-05-28 11:41:19 +01:00
|
|
|
add_subdirectory(lib)
|
2025-10-08 12:45:25 +01:00
|
|
|
|
|
|
|
|
if(_aaru_saved_warn_deprecated STREQUAL __aaru_warn_not_set__)
|
2025-10-09 17:00:45 +01:00
|
|
|
unset(CMAKE_WARN_DEPRECATED CACHE)
|
|
|
|
|
unset(CMAKE_WARN_DEPRECATED)
|
2025-10-08 12:45:25 +01:00
|
|
|
else()
|
2025-10-09 17:00:45 +01:00
|
|
|
set(CMAKE_WARN_DEPRECATED ${_aaru_saved_warn_deprecated} CACHE BOOL "" FORCE)
|
2025-10-08 12:45:25 +01:00
|
|
|
endif()
|
|
|
|
|
unset(_aaru_saved_warn_deprecated)
|
2025-10-02 22:16:58 +01:00
|
|
|
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR} ../include ../3rdparty/uthash/include ../3rdparty/uthash/src)
|
2022-05-28 11:41:19 +01:00
|
|
|
|
2025-10-03 02:03:39 +01:00
|
|
|
# Copy test data files into build tree
|
|
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/random DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
|
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/flac.flac DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
|
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/audio.bin DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
|
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/lzma.bin DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
|
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/data.bin DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 17:55:47 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/mf2hd_v1.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 17:59:44 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/mf2hd.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 18:04:19 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/floptical_v1.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 18:06:57 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/floptical.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 18:16:14 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/gigamo_v1.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 22:05:42 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/gigamo.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 22:52:10 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/hifd_v1.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 22:57:23 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/hifd.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 23:53:40 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/mo540_v1.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-10 00:02:56 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/mo540.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-10 00:13:37 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/mo640_v1.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-10 00:17:50 +01:00
|
|
|
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/mo640.aif DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
2025-10-09 17:00:45 +01:00
|
|
|
|
2025-10-03 02:03:39 +01:00
|
|
|
# Test executable (all unit tests)
|
2025-10-10 01:26:26 +01:00
|
|
|
add_executable(tests_run crc64.cpp spamsum.cpp crc32.c crc32.h flac.cpp lzma.cpp sha256.cpp md5.cpp sha1.cpp open_image.cpp
|
|
|
|
|
create_image.cpp)
|
2025-09-30 16:16:53 +01:00
|
|
|
|
2025-10-03 02:03:39 +01:00
|
|
|
# Link libraries
|
2025-10-02 22:17:25 +01:00
|
|
|
target_link_libraries(tests_run PRIVATE gtest gtest_main aaruformat)
|
2025-10-09 17:00:20 +01:00
|
|
|
|
|
|
|
|
# Integrate with CTest (per-test reporting)
|
|
|
|
|
enable_testing()
|
|
|
|
|
include(GoogleTest)
|
|
|
|
|
gtest_discover_tests(tests_run)
|