1if(WIN32) 2 set(EXEEXT .exe) 3endif() 4 5if(NOT UNIX) 6 find_program(BUSYBOX_EXE busybox) 7 if(NOT BUSYBOX_EXE) 8 message(STATUS "Could NOT find busybox, only basic tests are enabled") 9 add_test(NAME libFLAC 10 COMMAND $<TARGET_FILE:test_libFLAC> 11 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) 12 if(BUILD_CXXLIBS) 13 add_test(NAME libFLAC++ 14 COMMAND $<TARGET_FILE:test_libFLAC++> 15 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) 16 endif() 17 if(BUILD_PROGRAMS) 18 add_test(NAME flac_help 19 COMMAND $<TARGET_FILE:flacapp> --help 20 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) 21 add_test(NAME flac_utf8_test COMMAND $<TARGET_FILE:flacapp> -t 22 "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/שלום.flac" 23 "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/Prøve.flac" 24 "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/.flac") 25 add_test(NAME metaflac_help 26 COMMAND $<TARGET_FILE:metaflac> --help 27 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) 28 endif() 29 return() 30 else() 31 set(BUSYBOX_CMD "sh") 32 endif() 33endif() 34 35set(top_srcdir "${PROJECT_SOURCE_DIR}") 36set(top_builddir "${PROJECT_BINARY_DIR}") 37if(NOT GIT_COMMIT_TAG AND GIT_COMMIT_HASH AND GIT_COMMIT_DATE) 38 set(GIT_COMMIT_VERSION_HASH yes) 39endif() 40 41configure_file(common.sh.in common.sh @ONLY) 42 43set(ALL_TESTS libFLAC grabbag) 44 45add_test(NAME libFLAC 46 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_libFLAC.sh" 47 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 48if(BUILD_CXXLIBS) 49 add_test(NAME libFLAC++ 50 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_libFLAC++.sh" 51 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 52 list(APPEND ALL_TESTS libFLAC++) 53 set_tests_properties(libFLAC++ PROPERTIES DEPENDS libFLAC) 54endif() 55file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/cuesheets") 56add_test(NAME grabbag 57 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_grabbag.sh" 58 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 59if(BUILD_PROGRAMS) 60 add_test(NAME generate_streams 61 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/generate_streams.sh" 62 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 63 add_test(NAME flac 64 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_flac.sh" 65 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 66 # UTF-8 must be tested separately on Windows because busybox-w32 doesn't support UTF-8 67 if(BUSYBOX_EXE) 68 add_test(NAME flac_utf8_test COMMAND $<TARGET_FILE:flacapp> -t 69 "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/שלום.flac" 70 "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/Prøve.flac" 71 "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/.flac") 72 list(APPEND ALL_TESTS flac_utf8_test) 73 endif() 74 file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/metaflac-test-files") 75 add_test(NAME metaflac 76 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_metaflac.sh" 77 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 78 add_test(NAME replaygain 79 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_replaygain.sh" 80 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 81 add_test(NAME seeking 82 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_seeking.sh" 83 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 84 add_test(NAME streams 85 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_streams.sh" 86 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 87 # increase this if standard 1500 seconds are not enough 88 # set_tests_properties(streams PROPERTIES TIMEOUT 1500) 89 add_test(NAME compression 90 COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_compression.sh" 91 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 92 set_tests_properties(flac metaflac replaygain seeking streams compression PROPERTIES DEPENDS generate_streams) 93 list(APPEND ALL_TESTS generate_streams flac metaflac replaygain seeking streams compression) 94endif() 95 96 97set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT FLAC__TEST_LEVEL=1) 98if(BUSYBOX_EXE) 99 set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT ECHO_N=-n) 100 set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT WIN32BUSYBOX=yes) 101else() 102 set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT ECHO_C=\\c) 103endif() 104