diff options
author | Martijn van Beurden <mvanb1@gmail.com> | 2022-05-12 22:21:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-12 22:21:39 +0200 |
commit | 61649d09aa21ae173fb0f3d95269b1ad5c457b19 (patch) | |
tree | 98511c317e6f5a1ad9dae1824129334bfb05813c /test | |
parent | 1bec35e33757fc38261b0acfa3c032e720d2baf0 (diff) | |
download | flac-61649d09aa21ae173fb0f3d95269b1ad5c457b19.tar.gz |
Add checks for decoding from and encoding to UTF-8 filenames
Diffstat (limited to 'test')
-rw-r--r-- | test/CMakeLists.txt | 68 | ||||
-rw-r--r-- | test/flac-to-flac-metadata-test-files/Prøve.flac | bin | 0 -> 1257 bytes | |||
-rw-r--r-- | test/flac-to-flac-metadata-test-files/שלום.flac | bin | 0 -> 3926 bytes | |||
-rw-r--r-- | test/flac-to-flac-metadata-test-files/🤔.flac | bin | 0 -> 1708 bytes | |||
-rwxr-xr-x | test/test_flac.sh | 30 |
5 files changed, 75 insertions, 23 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6c80f763..b465e2fb 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -18,6 +18,10 @@ if(NOT UNIX) add_test(NAME flac_help COMMAND $<TARGET_FILE:flacapp> --help WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + add_test(NAME flac_utf8_test COMMAND $<TARGET_FILE:flacapp> -t + "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/שלום.flac" + "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/Prøve.flac" + "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/🤔.flac") add_test(NAME metaflac_help COMMAND $<TARGET_FILE:metaflac> --help WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) @@ -36,7 +40,7 @@ endif() configure_file(common.sh.in common.sh @ONLY) -set(ALL_TESTS libFLAC grabbag flac metaflac replaygain seeking streams compression) +set(ALL_TESTS libFLAC grabbag) add_test(NAME libFLAC COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_libFLAC.sh" @@ -51,26 +55,44 @@ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/cuesheets") add_test(NAME grabbag COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_grabbag.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") -add_test(NAME flac - COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_flac.sh" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") -file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/metaflac-test-files") -add_test(NAME metaflac - COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_metaflac.sh" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") -add_test(NAME replaygain - COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_replaygain.sh" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") -add_test(NAME seeking - COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_seeking.sh" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") -add_test(NAME streams - COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_streams.sh" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") -# increase this if standard 1500 seconds are not enough -# set_tests_properties(streams PROPERTIES TIMEOUT 1500) -add_test(NAME compression - COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_compression.sh" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") +if(BUILD_PROGRAMS) + add_test(NAME flac + COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_flac.sh" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + # UTF-8 must be tested separately on Windows because busybox-w32 doesn't support UTF-8 + if(BUSYBOX_EXE) + add_test(NAME flac_utf8_test COMMAND $<TARGET_FILE:flacapp> -t + "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/שלום.flac" + "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/Prøve.flac" + "${CMAKE_CURRENT_SOURCE_DIR}/flac-to-flac-metadata-test-files/🤔.flac") + list(APPEND ALL_TESTS flac_utf8_test) + endif() + file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/metaflac-test-files") + add_test(NAME metaflac + COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_metaflac.sh" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + add_test(NAME replaygain + COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_replaygain.sh" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + add_test(NAME seeking + COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_seeking.sh" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + add_test(NAME streams + COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_streams.sh" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + # increase this if standard 1500 seconds are not enough + # set_tests_properties(streams PROPERTIES TIMEOUT 1500) + add_test(NAME compression + COMMAND ${BUSYBOX_EXE} ${BUSYBOX_CMD} "${CMAKE_CURRENT_SOURCE_DIR}/test_compression.sh" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + list(APPEND ALL_TESTS flac metaflac replaygain seeking streams compression) +endif() -set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT ECHO_C=\\c) + +set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT FLAC__TEST_LEVEL=1) +if(BUSYBOX_EXE) + set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT ECHO_N=-n) + set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT WIN32BUSYBOX=yes) +else() + set_property(TEST ${ALL_TESTS} APPEND PROPERTY ENVIRONMENT ECHO_C=\\c) +endif() diff --git a/test/flac-to-flac-metadata-test-files/Prøve.flac b/test/flac-to-flac-metadata-test-files/Prøve.flac Binary files differnew file mode 100644 index 00000000..18830754 --- /dev/null +++ b/test/flac-to-flac-metadata-test-files/Prøve.flac diff --git a/test/flac-to-flac-metadata-test-files/שלום.flac b/test/flac-to-flac-metadata-test-files/שלום.flac Binary files differnew file mode 100644 index 00000000..0e668681 --- /dev/null +++ b/test/flac-to-flac-metadata-test-files/שלום.flac diff --git a/test/flac-to-flac-metadata-test-files/🤔.flac b/test/flac-to-flac-metadata-test-files/🤔.flac Binary files differnew file mode 100644 index 00000000..7373da6b --- /dev/null +++ b/test/flac-to-flac-metadata-test-files/🤔.flac diff --git a/test/test_flac.sh b/test/test_flac.sh index 75e995d6..6ecd0f66 100755 --- a/test/test_flac.sh +++ b/test/test_flac.sh @@ -1290,6 +1290,36 @@ if [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then test_total_samples_overflow 68719476737 0 fi +############################################################################ +# test handling of UTF-8 filenames +############################################################################ + + +test_utf8_handling () +{ + echo $ECHO_N "Test decoding from $1... " $ECHO_C + run_flac -d $testdatadir/$1 -o out.wav + if [ -f out.wav ] ; then + echo "OK" + else + die "Decoding failed" + fi + echo $ECHO_N "Test encoding to $1... " $ECHO_C + run_flac out.wav -o $1 + if [ -f $1 ] ; then + echo "OK" + else + die "Encoding failed" + fi + rm $1 out.wav +} + +if [ "$WIN32BUSYBOX" != "yes" ]; then + test_utf8_handling שלום.flac + test_utf8_handling 🤔.flac + test_utf8_handling Prøve.flac +fi + rm -f out.flac out.meta out1.meta #@@@ when metaflac handles ogg flac, duplicate flac2flac tests here |