xref: /aosp_15_r20/external/flac/test/CMakeLists.txt (revision 600f14f40d737144c998e2ec7a483122d3776fbc)
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