Adapt most changes from taglib2

This commit is contained in:
Jonas Kvinge
2020-06-26 23:30:30 +02:00
parent 08882639e0
commit 5f71a558b9
374 changed files with 13708 additions and 4418 deletions

View File

@@ -1,93 +1,99 @@
find_package(Qt5 ${QT_MIN_VERSION} COMPONENTS Test)
find_package(GTest)
find_library(GMOCK_LIBRARY gmock)
enable_testing()
if(Qt5Test_FOUND AND GTEST_FOUND AND GMOCK_LIBRARY)
find_package(Qt5 ${QT_MIN_VERSION} COMPONENTS Test REQUIRED)
find_package(GTest REQUIRED)
find_library(GMOCK_LIBRARY gmock REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS} ${GMOCK_INCLUDE_DIRS} ${QT_QTTEST_INCLUDE_DIR})
include_directories(${TAGLIB_INCLUDE_DIRS})
if(HAVE_GSTREAMER)
link_directories(${GSTREAMER_LIBRARY_DIRS})
include_directories(${GSTREAMER_INCLUDE_DIRS})
include_directories(${GSTREAMER_APP_INCLUDE_DIRS})
include_directories(${GSTREAMER_AUDIO_INCLUDE_DIRS})
include_directories(${GSTREAMER_BASE_INCLUDE_DIRS})
include_directories(${GSTREAMER_TAG_INCLUDE_DIRS})
endif()
include_directories(${CMAKE_SOURCE_DIR}/src)
include_directories(${CMAKE_BINARY_DIR}/src)
include_directories(${CMAKE_SOURCE_DIR}/tests/src)
include_directories(${CMAKE_BINARY_DIR}/tests/src)
include_directories(${CMAKE_SOURCE_DIR}/ext/strawberry-tagreader)
include_directories(${CMAKE_SOURCE_DIR}/ext/libstrawberry-common)
include_directories(${CMAKE_SOURCE_DIR}/ext/libstrawberry-tagreader)
include_directories(${CMAKE_BINARY_DIR}/ext/libstrawberry-tagreader)
if(HAVE_LIBGPOD)
include_directories(${LIBGPOD_INCLUDE_DIRS})
endif(HAVE_LIBGPOD)
add_definitions(-DGTEST_USE_OWN_TR1_TUPLE=1)
add_definitions(-DGTEST_USE_OWN_TR1_TUPLE=1)
set(TESTUTILS-SOURCES
src/mock_networkaccessmanager.cpp
src/mock_playlistitem.cpp
src/test_utils.cpp
src/testobjectdecorators.cpp
)
set(TESTUTILS-SOURCES
src/mock_networkaccessmanager.cpp
src/mock_playlistitem.cpp
src/test_utils.cpp
src/testobjectdecorators.cpp
set(TESTUTILS-MOC-HEADERS src/mock_networkaccessmanager.h src/test_utils.h src/testobjectdecorators.h)
qt5_wrap_cpp(TESTUTILS-SOURCES-MOC ${TESTUTILS-MOC-HEADERS})
add_library(test_utils STATIC EXCLUDE_FROM_ALL ${TESTUTILS-SOURCES} ${TESTUTILS-SOURCES-MOC})
target_include_directories(test_utils SYSTEM PRIVATE
${GTEST_INCLUDE_DIRS}
${GMOCK_INCLUDE_DIRS}
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${Qt5Test_INCLUDE_DIRS}
)
target_include_directories(test_utils PRIVATE
${CMAKE_BINARY_DIR}/src
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/ext/libstrawberry-common
)
target_link_libraries(test_utils PRIVATE
${GTEST_BOTH_LIBRARIES}
${GMOCK_LIBRARY}
${Qt5Core_LIBRARIES}
${Qt5Test_LIBRARIES}
)
if(HAVE_GSTREAMER)
target_include_directories(test_utils SYSTEM PRIVATE
${GSTREAMER_INCLUDE_DIRS}
${GSTREAMER_BASE_INCLUDE_DIRS}
${GSTREAMER_APP_INCLUDE_DIRS}
${GSTREAMER_AUDIO_INCLUDE_DIRS}
${GSTREAMER_TAG_INCLUDE_DIRS}
)
endif(HAVE_GSTREAMER)
set(TESTUTILS-MOC-HEADERS src/mock_networkaccessmanager.h src/test_utils.h src/testobjectdecorators.h)
add_custom_target(strawberry_tests echo "Running Strawberry tests" WORKING_DIRECTORY ${CURRENT_BINARY_DIR})
add_custom_target(build_tests WORKING_DIRECTORY ${CURRENT_BINARY_DIR})
add_dependencies(strawberry_tests build_tests)
qt5_wrap_cpp(TESTUTILS-SOURCES-MOC ${TESTUTILS-MOC-HEADERS})
qt5_add_resources(TEST-RESOURCE-SOURCES data/testdata.qrc)
add_library(test_utils STATIC EXCLUDE_FROM_ALL ${TESTUTILS-SOURCES} ${TESTUTILS-SOURCES-MOC})
target_link_libraries(test_utils ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${QT_LIBRARIES} ${Qt5Test_LIBRARIES})
add_library(test_gui_main STATIC EXCLUDE_FROM_ALL ${TEST-RESOURCE-SOURCES} src/main.cpp)
if(HAVE_GSTREAMER)
target_include_directories(test_gui_main SYSTEM PRIVATE ${GSTREAMER_INCLUDE_DIRS})
endif(HAVE_GSTREAMER)
target_link_libraries(test_gui_main strawberry_lib)
set_target_properties(test_gui_main PROPERTIES COMPILE_DEFINITIONS GUI)
add_custom_target(strawberry_test echo "Running Strawberry tests" WORKING_DIRECTORY ${CURRENT_BINARY_DIR})
add_custom_target(build_tests WORKING_DIRECTORY ${CURRENT_BINARY_DIR})
add_dependencies(strawberry_test build_tests)
add_library(test_main STATIC EXCLUDE_FROM_ALL ${TEST-RESOURCE-SOURCES} src/main.cpp)
if(HAVE_GSTREAMER)
target_include_directories(test_main SYSTEM PRIVATE ${GSTREAMER_INCLUDE_DIRS})
endif(HAVE_GSTREAMER)
target_link_libraries(test_main PRIVATE strawberry_lib)
qt5_add_resources(TEST-RESOURCE-SOURCES data/testdata.qrc)
# Given a file foo_test.cpp, creates a target foo_test and adds it to the test target.
macro(add_test_file test_source gui_required)
get_filename_component(TEST_NAME ${test_source} NAME_WE)
add_executable(${TEST_NAME} EXCLUDE_FROM_ALL ${test_source})
target_include_directories(${TEST_NAME} SYSTEM PRIVATE ${GTEST_INCLUDE_DIRS} ${Qt5Test_INCLUDE_DIRS})
target_link_libraries(${TEST_NAME} PRIVATE strawberry_lib test_utils)
set(GUI_REQUIRED ${gui_required})
if(GUI_REQUIRED)
target_link_libraries(${TEST_NAME} PRIVATE test_gui_main)
else(GUI_REQUIRED)
target_link_libraries(${TEST_NAME} PRIVATE test_main)
endif(GUI_REQUIRED)
add_library(test_gui_main STATIC EXCLUDE_FROM_ALL ${TEST-RESOURCE-SOURCES} src/main.cpp)
target_link_libraries(test_gui_main strawberry_lib)
set_target_properties(test_gui_main PROPERTIES COMPILE_DEFINITIONS GUI)
add_test(strawberry_tests ${TEST_NAME})
add_custom_command(TARGET strawberry_tests POST_BUILD COMMAND ./${TEST_NAME}${CMAKE_EXECUTABLE_SUFFIX})
add_dependencies(build_tests ${TEST_NAME})
endmacro(add_test_file)
add_library(test_main STATIC EXCLUDE_FROM_ALL ${TEST-RESOURCE-SOURCES} src/main.cpp)
target_link_libraries(test_main strawberry_lib)
add_test_file(src/utilities_test.cpp false)
add_test_file(src/concurrentrun_test.cpp false)
add_test_file(src/closure_test.cpp false)
add_test_file(src/mergedproxymodel_test.cpp false)
add_test_file(src/sqlite_test.cpp false)
add_test_file(src/song_test.cpp false)
add_test_file(src/collectionbackend_test.cpp false)
add_test_file(src/collectionmodel_test.cpp true)
add_test_file(src/songplaylistitem_test.cpp false)
add_test_file(src/organiseformat_test.cpp false)
# Given a file foo_test.cpp, creates a target foo_test and adds it to the test target.
macro(add_test_file test_source gui_required)
get_filename_component(TEST_NAME ${test_source} NAME_WE)
add_executable(${TEST_NAME}
EXCLUDE_FROM_ALL
${test_source}
)
target_link_libraries(${TEST_NAME} ${GMOCK_LIBRARY} strawberry_lib test_utils Qt5::Test)
set(GUI_REQUIRED ${gui_required})
if (GUI_REQUIRED)
target_link_libraries(${TEST_NAME} test_gui_main)
else (GUI_REQUIRED)
target_link_libraries(${TEST_NAME} test_main)
endif (GUI_REQUIRED)
check_cxx_compiler_flag("-Wno-bool-conversions" SUPPORTS_NOBOOL)
if (SUPPORTS_NOBOOL)
set_target_properties(${TEST_NAME} PROPERTIES COMPILE_FLAGS "-Wno-bool-conversions")
endif (SUPPORTS_NOBOOL)
add_custom_command(TARGET strawberry_test POST_BUILD COMMAND ./${TEST_NAME}${CMAKE_EXECUTABLE_SUFFIX})
add_dependencies(build_tests ${TEST_NAME})
endmacro (add_test_file)
add_test_file(src/utilities_test.cpp false)
add_test_file(src/concurrentrun_test.cpp false)
add_test_file(src/closure_test.cpp false)
add_test_file(src/mergedproxymodel_test.cpp false)
add_test_file(src/sqlite_test.cpp false)
add_test_file(src/song_test.cpp false)
add_test_file(src/collectionbackend_test.cpp false)
add_test_file(src/collectionmodel_test.cpp true)
add_test_file(src/songplaylistitem_test.cpp false)
add_test_file(src/organiseformat_test.cpp false)
endif() # Qt5Test_FOUND AND GTEST_FOUND AND GMOCK_LIBRARY
add_custom_target(run_strawberry_tests COMMAND ${CMAKE_CTEST_COMMAND} -V DEPENDS strawberry_tests)

View File

@@ -0,0 +1,91 @@
enable_testing()
find_package(CppUnit REQUIRED)
SET(TAGLIB_TESTS_SOURCES
main.cpp
test_list.cpp
test_map.cpp
test_mpeg.cpp
test_synchdata.cpp
test_trueaudio.cpp
test_bytevector.cpp
test_bytevectorlist.cpp
test_bytevectorstream.cpp
test_string.cpp
test_propertymap.cpp
test_file.cpp
test_fileref.cpp
test_id3v1.cpp
test_id3v2.cpp
test_xiphcomment.cpp
test_aiff.cpp
test_riff.cpp
test_ogg.cpp
test_oggflac.cpp
test_flac.cpp
test_flacpicture.cpp
test_flacunknownmetadatablock.cpp
test_ape.cpp
test_apetag.cpp
test_wav.cpp
test_info.cpp
test_wavpack.cpp
test_mp4.cpp
test_mp4item.cpp
test_mp4coverart.cpp
test_asf.cpp
test_mod.cpp
test_s3m.cpp
test_it.cpp
test_xm.cpp
test_mpc.cpp
test_opus.cpp
test_speex.cpp
test_dsf.cpp
test_dsdiff.cpp
)
link_directories(${TAGLIB_LIBRARY_DIRS})
add_executable(taglib_tests ${TAGLIB_TESTS_SOURCES})
target_include_directories(taglib_tests PRIVATE
${CPPUNIT_INCLUDE_DIR}
${TAGLIB_INCLUDE_DIRS}
${CMAKE_CURRENT_BINARY_DIR}/../../3rdparty/taglib
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/toolkit
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/ape
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/asf
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/mpeg/id3v1
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/mpeg/id3v2
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/mpeg/id3v2/frames
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/mpeg
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/mpc
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/mp4
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/riff
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/riff/aiff
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/riff/wav
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/trueaudio
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/ogg
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/ogg/vorbis
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/ogg/flac
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/ogg/speex
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/ogg/opus
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/flac
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/wavpack
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/mod
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/s3m
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/it
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/xm
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/dsf
${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/taglib/dsdiff
)
target_link_libraries(taglib_tests PRIVATE
${CPPUNIT_LIBRARIES}
${TAGLIB_LIBRARIES}
)
add_test(taglib_tests taglib_tests)
add_custom_target(run_taglib_tests COMMAND ${CMAKE_CTEST_COMMAND} -V DEPENDS taglib_tests)

Binary file not shown.

BIN
tests/taglib/data/64bit.mp4 Normal file

Binary file not shown.

BIN
tests/taglib/data/alaw.aifc Normal file

Binary file not shown.

BIN
tests/taglib/data/alaw.wav Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/taglib/data/ape.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/taglib/data/click.mpc Normal file

Binary file not shown.

BIN
tests/taglib/data/click.wv Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/taglib/data/empty.dsf Normal file

Binary file not shown.

BIN
tests/taglib/data/empty.ogg Normal file

Binary file not shown.

BIN
tests/taglib/data/empty.spx Normal file

Binary file not shown.

BIN
tests/taglib/data/empty.tta Normal file

Binary file not shown.

BIN
tests/taglib/data/empty.wav Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/taglib/data/gnre.m4a Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/taglib/data/mpeg2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/taglib/data/noise.aif Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
MPCKSH

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/taglib/data/tagged.wv Normal file

Binary file not shown.

BIN
tests/taglib/data/test.it Normal file

Binary file not shown.

BIN
tests/taglib/data/test.ogg Normal file

Binary file not shown.

BIN
tests/taglib/data/test.s3m Normal file

Binary file not shown.

BIN
tests/taglib/data/test.xm Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tests/taglib/data/w000.mp3 Normal file

Binary file not shown.

BIN
tests/taglib/data/xing.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More