CMakeLists.txt 4.6 KB

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