1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
set(DRPM_TEST_SOURCES drpm_api_tests.c)
foreach(sourcefile ${DRPM_SOURCES})
list(APPEND DRPM_TEST_SOURCES "../src/${sourcefile}")
endforeach()
set(DRPM_TEST_FILES refdrpm-copy.sha256 refseqfile-copy.txt)
set(DRPM_TEST_RPM_PACKAGE_NAMES drpm cmocka)
foreach(name ${DRPM_TEST_RPM_PACKAGE_NAMES})
list(APPEND DRPM_TEST_FILES "${name}-old.rpm" "${name}-new.rpm")
endforeach()
set(DRPM_TEST_ARGS_CMP_FILES -d ${CMAKE_CURRENT_BINARY_DIR})
set(DRPM_TEST_ARGS_VALGRIND --error-exitcode=1 --read-var-info=yes --leak-check=full --show-leak-kinds=all --track-origins=yes --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/lzma.supp)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
file(
COPY ${DRPM_TEST_FILES}
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
)
find_program(BASH_PROGRAM bash)
find_program(MAKEDELTARPM_PROGRAM makedeltarpm)
find_program(VALGRIND_PROGRAM valgrind)
if (NOT MAKEDELTARPM_PROGRAM)
list(APPEND DRPM_TEST_ARGS_CMP_FILES -s)
endif()
if (HAVE_LZLIB_DEVEL)
list(APPEND DRPM_TEST_ARGS_CMP_FILES -l)
endif()
add_executable(drpm_api_tests ${DRPM_TEST_SOURCES})
set_source_files_properties(${DRPM_TEST_SOURCES} PROPERTIES
COMPILE_FLAGS "-std=c99 -pedantic -Wall -Wextra -DHAVE_CONFIG_H -I${CMAKE_BINARY_DIR}"
)
target_link_libraries(drpm_api_tests ${DRPM_LINK_LIBRARIES} ${CMOCKA_LIBRARIES})
add_test(
NAME drpm_api_tests
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ./drpm_api_tests
)
if (BASH_PROGRAM)
add_test(
NAME drpm_cmp_files
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${BASH_PROGRAM} ${CMAKE_CURRENT_SOURCE_DIR}/drpm_cmp_files.sh ${DRPM_TEST_ARGS_CMP_FILES}
)
set_tests_properties(drpm_cmp_files PROPERTIES DEPENDS drpm_api_tests)
endif()
if (VALGRIND_PROGRAM)
add_test(
NAME drpm_memcheck
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND valgrind ${DRPM_TEST_ARGS_VALGRIND} ./drpm_api_tests
)
endif()
|