NOISSUE remove dead unit tests and reorganize CMake code related to unit tests
This commit is contained in:
parent
ed3884fd38
commit
e8ba5dafc6
49
cmake/UnitTest.cmake
Normal file
49
cmake/UnitTest.cmake
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
find_package(Qt5Test REQUIRED)
|
||||||
|
|
||||||
|
set(TEST_RESOURCE_PATH ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
|
||||||
|
message(${TEST_RESOURCE_PATH})
|
||||||
|
|
||||||
|
function(add_unit_test name)
|
||||||
|
set(options "")
|
||||||
|
set(oneValueArgs DATA)
|
||||||
|
set(multiValueArgs SOURCES LIBS QT)
|
||||||
|
|
||||||
|
cmake_parse_arguments(OPT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
add_executable(tst_${name} ${OPT_SOURCES} ${TEST_RESOURCE_PATH}/UnitTest/test.rc)
|
||||||
|
else()
|
||||||
|
add_executable(tst_${name} ${OPT_SOURCES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT "${OPT_DATA}" STREQUAL "")
|
||||||
|
set(TEST_DATA_PATH "${CMAKE_CURRENT_BINARY_DIR}/data")
|
||||||
|
set(TEST_DATA_PATH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/${OPT_DATA}")
|
||||||
|
message("From ${TEST_DATA_PATH_SRC} to ${TEST_DATA_PATH}")
|
||||||
|
string(REGEX REPLACE "[/\\:]" "_" DATA_TARGET_NAME "${TEST_DATA_PATH_SRC}")
|
||||||
|
if(UNIX)
|
||||||
|
# on unix we get the third / from the filename
|
||||||
|
set(TEST_DATA_URL "file://${TEST_DATA_PATH}")
|
||||||
|
else()
|
||||||
|
# we don't on windows, so we have to add it ourselves
|
||||||
|
set(TEST_DATA_URL "file:///${TEST_DATA_PATH}")
|
||||||
|
endif()
|
||||||
|
if(NOT TARGET "${DATA_TARGET_NAME}")
|
||||||
|
add_custom_target(${DATA_TARGET_NAME})
|
||||||
|
add_dependencies(tst_${name} ${DATA_TARGET_NAME})
|
||||||
|
add_custom_command(
|
||||||
|
TARGET ${DATA_TARGET_NAME}
|
||||||
|
COMMAND ${CMAKE_COMMAND} "-DTEST_DATA_URL=${TEST_DATA_URL}" -DSOURCE=${TEST_DATA_PATH_SRC} -DDESTINATION=${TEST_DATA_PATH} -P ${TEST_RESOURCE_PATH}/UnitTest/generate_test_data.cmake
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(tst_${name} ${OPT_LIBS})
|
||||||
|
qt5_use_modules(tst_${name} Test ${OPT_QT})
|
||||||
|
|
||||||
|
target_include_directories(tst_${name} PRIVATE "${TEST_RESOURCE_PATH}/UnitTest/")
|
||||||
|
|
||||||
|
add_test(NAME ${name} COMMAND tst_${name})
|
||||||
|
endfunction()
|
@ -5,7 +5,8 @@
|
|||||||
#include <QTest>
|
#include <QTest>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
|
||||||
#include "test_config.h"
|
#define expandstr(s) expandstr2(s)
|
||||||
|
#define expandstr2(s) #s
|
||||||
|
|
||||||
class TestsInternal
|
class TestsInternal
|
||||||
{
|
{
|
26
cmake/UnitTest/generate_test_data.cmake
Normal file
26
cmake/UnitTest/generate_test_data.cmake
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Copy files from source directory to destination directory, substituting any
|
||||||
|
# variables. Create destination directory if it does not exist.
|
||||||
|
|
||||||
|
function(configure_files srcDir destDir)
|
||||||
|
message(STATUS "Configuring directory ${destDir} from ${srcDir}")
|
||||||
|
make_directory(${destDir})
|
||||||
|
|
||||||
|
file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*)
|
||||||
|
foreach(templateFile ${templateFiles})
|
||||||
|
set(srcTemplatePath ${srcDir}/${templateFile})
|
||||||
|
if(NOT IS_DIRECTORY ${srcTemplatePath})
|
||||||
|
message(STATUS "Configuring file ${templateFile}")
|
||||||
|
configure_file(
|
||||||
|
${srcTemplatePath}
|
||||||
|
${destDir}/${templateFile}
|
||||||
|
@ONLY
|
||||||
|
NEWLINE_STYLE LF
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS "Recursing? ${srcTemplatePath}")
|
||||||
|
configure_files("${srcTemplatePath}" "${destDir}/${templateFile}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
configure_files(${SOURCE} ${DESTINATION})
|
@ -1,66 +1,82 @@
|
|||||||
# run the unit tests with `make test`
|
include(UnitTest)
|
||||||
find_package(Qt5Test)
|
|
||||||
|
|
||||||
add_custom_target(test_data)
|
add_unit_test(gradlespecifier
|
||||||
|
SOURCES tst_gradlespecifier.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
unset(MultiMC_TESTS)
|
add_unit_test(userutils
|
||||||
macro(add_unit_test name)
|
SOURCES tst_userutils.cpp
|
||||||
unset(srcs)
|
LIBS MultiMC_logic
|
||||||
foreach(arg ${testname} ${ARGN})
|
)
|
||||||
list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/${arg})
|
|
||||||
endforeach()
|
|
||||||
if(WIN32)
|
|
||||||
list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/test.rc)
|
|
||||||
endif()
|
|
||||||
add_executable(tst_${name} ${srcs})
|
|
||||||
add_dependencies(tst_${name} test_data)
|
|
||||||
target_link_libraries(tst_${name} MultiMC_logic)
|
|
||||||
qt5_use_modules(tst_${name} Test Core Network)
|
|
||||||
list(APPEND MultiMC_TESTS tst_${name})
|
|
||||||
add_test(NAME ${name} COMMAND tst_${name})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# Tests BEGIN #
|
add_unit_test(modutils
|
||||||
|
SOURCES tst_modutils.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
add_unit_test(gradlespecifier tst_gradlespecifier.cpp)
|
add_unit_test(inifile
|
||||||
add_unit_test(userutils tst_userutils.cpp)
|
SOURCES tst_inifile.cpp
|
||||||
add_unit_test(modutils tst_modutils.cpp)
|
LIBS MultiMC_logic
|
||||||
add_unit_test(inifile tst_inifile.cpp)
|
)
|
||||||
add_unit_test(FileSystem tst_FileSystem.cpp)
|
|
||||||
add_unit_test(Library tst_Library.cpp)
|
|
||||||
add_unit_test(UpdateChecker tst_UpdateChecker.cpp)
|
|
||||||
add_unit_test(DownloadTask tst_DownloadTask.cpp)
|
|
||||||
add_unit_test(filematchers tst_filematchers.cpp)
|
|
||||||
add_unit_test(ModList tst_ModList.cpp)
|
|
||||||
# add_unit_test(Resource tst_Resource.cpp)
|
|
||||||
add_unit_test(GZip tst_GZip.cpp)
|
|
||||||
add_unit_test(JavaVersion tst_JavaVersion.cpp)
|
|
||||||
add_unit_test(ParseUtils tst_ParseUtils.cpp)
|
|
||||||
add_unit_test(MojangVersionFormat tst_MojangVersionFormat.cpp)
|
|
||||||
add_unit_test(BaseWonkoEntityLocalLoadTask tst_BaseWonkoEntityLocalLoadTask.cpp)
|
|
||||||
add_unit_test(BaseWonkoEntityRemoteLoadTask tst_BaseWonkoEntityRemoteLoadTask.cpp)
|
|
||||||
add_unit_test(WonkoVersionList tst_WonkoVersionList.cpp)
|
|
||||||
add_unit_test(WonkoIndex tst_WonkoIndex.cpp)
|
|
||||||
|
|
||||||
# Tests END #
|
add_unit_test(FileSystem
|
||||||
|
SOURCES tst_FileSystem.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
|
add_unit_test(Library
|
||||||
|
SOURCES tst_Library.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
set(MultiMC_TEST_DATA_PATH "${CMAKE_CURRENT_BINARY_DIR}/data")
|
add_unit_test(UpdateChecker
|
||||||
set(MultiMC_TEST_DATA_PATH_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/data")
|
SOURCES tst_UpdateChecker.cpp
|
||||||
set(MultiMC_TEST_DATA_PATH_SOURCE_RAW "${CMAKE_CURRENT_SOURCE_DIR}/data_raw")
|
LIBS MultiMC_logic
|
||||||
|
DATA data
|
||||||
|
)
|
||||||
|
|
||||||
if(UNIX)
|
add_unit_test(DownloadTask
|
||||||
# on unix we get the third / from the filename
|
SOURCES tst_DownloadTask.cpp
|
||||||
set(MultiMC_TEST_DATA_URL "file://${MultiMC_TEST_DATA_PATH}")
|
LIBS MultiMC_logic
|
||||||
else()
|
DATA data_raw
|
||||||
# we don't on windows, so we have to add it ourselves
|
)
|
||||||
set(MultiMC_TEST_DATA_URL "file:///${MultiMC_TEST_DATA_PATH}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# clean and replace test data
|
add_unit_test(filematchers
|
||||||
add_custom_command(
|
SOURCES tst_filematchers.cpp
|
||||||
TARGET test_data
|
LIBS MultiMC_logic
|
||||||
COMMAND ${CMAKE_COMMAND} -DMultiMC_TEST_DATA_URL=${MultiMC_TEST_DATA_URL} -DMultiMC_TEST_DATA_PATH=${MultiMC_TEST_DATA_PATH} -DMultiMC_TEST_DATA_PATH_SOURCE=${MultiMC_TEST_DATA_PATH_SOURCE} -DMultiMC_TEST_DATA_PATH_SOURCE_RAW=${MultiMC_TEST_DATA_PATH_SOURCE_RAW} -P ${CMAKE_CURRENT_SOURCE_DIR}/copy_tests.cmake
|
)
|
||||||
)
|
|
||||||
|
|
||||||
configure_file(test_config.h.in test_config.h @ONLY)
|
add_unit_test(ModList
|
||||||
|
SOURCES tst_ModList.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
|
# add_unit_test(Resource
|
||||||
|
# SOURCES tst_Resource.cpp
|
||||||
|
# )
|
||||||
|
|
||||||
|
add_unit_test(GZip
|
||||||
|
SOURCES tst_GZip.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
|
add_unit_test(JavaVersion
|
||||||
|
SOURCES tst_JavaVersion.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
|
add_unit_test(ParseUtils
|
||||||
|
SOURCES tst_ParseUtils.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
|
add_unit_test(MojangVersionFormat
|
||||||
|
SOURCES tst_MojangVersionFormat.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
|
||||||
|
add_unit_test(WonkoIndex
|
||||||
|
SOURCES tst_WonkoIndex.cpp
|
||||||
|
LIBS MultiMC_logic
|
||||||
|
)
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
file(GLOB data_files "${MultiMC_TEST_DATA_PATH_SOURCE}/*")
|
|
||||||
foreach(data_file ${data_files})
|
|
||||||
get_filename_component(filename ${data_file} NAME)
|
|
||||||
configure_file(
|
|
||||||
${data_file}
|
|
||||||
${MultiMC_TEST_DATA_PATH}/${filename}
|
|
||||||
@ONLY
|
|
||||||
NEWLINE_STYLE LF
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
file(GLOB raw_data_files "${MultiMC_TEST_DATA_PATH_SOURCE_RAW}/*")
|
|
||||||
file(COPY ${raw_data_files} DESTINATION ${MultiMC_TEST_DATA_PATH}/)
|
|
@ -8,7 +8,7 @@
|
|||||||
"Sources": [
|
"Sources": [
|
||||||
{
|
{
|
||||||
"SourceType": "http",
|
"SourceType": "http",
|
||||||
"Url": "@MultiMC_TEST_DATA_URL@/fileOneA"
|
"Url": "@TEST_DATA_URL@/fileOneA"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Executable": true,
|
"Executable": true,
|
||||||
@ -20,7 +20,7 @@
|
|||||||
"Sources": [
|
"Sources": [
|
||||||
{
|
{
|
||||||
"SourceType": "http",
|
"SourceType": "http",
|
||||||
"Url": "@MultiMC_TEST_DATA_URL@/fileTwo"
|
"Url": "@TEST_DATA_URL@/fileTwo"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Executable": false,
|
"Executable": false,
|
||||||
@ -32,7 +32,7 @@
|
|||||||
"Sources": [
|
"Sources": [
|
||||||
{
|
{
|
||||||
"SourceType": "http",
|
"SourceType": "http",
|
||||||
"Url": "@MultiMC_TEST_DATA_URL@/fileThree"
|
"Url": "@TEST_DATA_URL@/fileThree"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Executable": false,
|
"Executable": false,
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
"Sources": [
|
"Sources": [
|
||||||
{
|
{
|
||||||
"SourceType": "http",
|
"SourceType": "http",
|
||||||
"Url": "@MultiMC_TEST_DATA_URL@/fileOneB"
|
"Url": "@TEST_DATA_URL@/fileOneB"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Executable": true,
|
"Executable": true,
|
||||||
@ -20,7 +20,7 @@
|
|||||||
"Sources": [
|
"Sources": [
|
||||||
{
|
{
|
||||||
"SourceType": "http",
|
"SourceType": "http",
|
||||||
"Url": "@MultiMC_TEST_DATA_URL@/fileTwo"
|
"Url": "@TEST_DATA_URL@/fileTwo"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Executable": false,
|
"Executable": false,
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
"id": "develop",
|
"id": "develop",
|
||||||
"name": "Develop",
|
"name": "Develop",
|
||||||
"description": "The channel called \"develop\"",
|
"description": "The channel called \"develop\"",
|
||||||
"url": "@MultiMC_TEST_DATA_URL@"
|
"url": "@TEST_DATA_URL@"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "stable",
|
"id": "stable",
|
||||||
"name": "Stable",
|
"name": "Stable",
|
||||||
"description": "It's stable at least",
|
"description": "It's stable at least",
|
||||||
"url": "@MultiMC_TEST_DATA_URL@"
|
"url": "@TEST_DATA_URL@"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "42",
|
"id": "42",
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#define MultiMC_TEST_DATA_URL "@MultiMC_TEST_DATA_URL@"
|
|
@ -1,15 +0,0 @@
|
|||||||
#include <QTest>
|
|
||||||
#include "TestUtil.h"
|
|
||||||
|
|
||||||
#include "wonko/tasks/BaseWonkoEntityLocalLoadTask.h"
|
|
||||||
|
|
||||||
class BaseWonkoEntityLocalLoadTaskTest : public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
private
|
|
||||||
slots:
|
|
||||||
};
|
|
||||||
|
|
||||||
QTEST_GUILESS_MAIN(BaseWonkoEntityLocalLoadTaskTest)
|
|
||||||
|
|
||||||
#include "tst_BaseWonkoEntityLocalLoadTask.moc"
|
|
@ -1,15 +0,0 @@
|
|||||||
#include <QTest>
|
|
||||||
#include "TestUtil.h"
|
|
||||||
|
|
||||||
#include "wonko/tasks/BaseWonkoEntityRemoteLoadTask.h"
|
|
||||||
|
|
||||||
class BaseWonkoEntityRemoteLoadTaskTest : public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
private
|
|
||||||
slots:
|
|
||||||
};
|
|
||||||
|
|
||||||
QTEST_GUILESS_MAIN(BaseWonkoEntityRemoteLoadTaskTest)
|
|
||||||
|
|
||||||
#include "tst_BaseWonkoEntityRemoteLoadTask.moc"
|
|
@ -8,6 +8,7 @@ Q_DECLARE_METATYPE(UpdateChecker::ChannelListEntry)
|
|||||||
|
|
||||||
bool operator==(const UpdateChecker::ChannelListEntry &e1, const UpdateChecker::ChannelListEntry &e2)
|
bool operator==(const UpdateChecker::ChannelListEntry &e1, const UpdateChecker::ChannelListEntry &e2)
|
||||||
{
|
{
|
||||||
|
qDebug() << e1.url << "vs" << e2.url;
|
||||||
return e1.id == e2.id &&
|
return e1.id == e2.id &&
|
||||||
e1.name == e2.name &&
|
e1.name == e2.name &&
|
||||||
e1.description == e2.description &&
|
e1.description == e2.description &&
|
||||||
@ -76,8 +77,8 @@ slots:
|
|||||||
<< true
|
<< true
|
||||||
<< true
|
<< true
|
||||||
<< (QList<UpdateChecker::ChannelListEntry>()
|
<< (QList<UpdateChecker::ChannelListEntry>()
|
||||||
<< UpdateChecker::ChannelListEntry{"develop", "Develop", "The channel called \"develop\"", MultiMC_TEST_DATA_URL}
|
<< UpdateChecker::ChannelListEntry{"develop", "Develop", "The channel called \"develop\"", findTestDataUrl("tests/data")}
|
||||||
<< UpdateChecker::ChannelListEntry{"stable", "Stable", "It's stable at least", MultiMC_TEST_DATA_URL}
|
<< UpdateChecker::ChannelListEntry{"stable", "Stable", "It's stable at least", findTestDataUrl("tests/data")}
|
||||||
<< UpdateChecker::ChannelListEntry{"42", "The Channel", "This is the channel that is going to answer all of your questions", "https://dent.me/tea"});
|
<< UpdateChecker::ChannelListEntry{"42", "The Channel", "This is the channel that is going to answer all of your questions", "https://dent.me/tea"});
|
||||||
}
|
}
|
||||||
void tst_ChannelListParsing()
|
void tst_ChannelListParsing()
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
#include <QTest>
|
|
||||||
#include "TestUtil.h"
|
|
||||||
|
|
||||||
#include "wonko/WonkoVersionList.h"
|
|
||||||
|
|
||||||
class WonkoVersionListTest : public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
private
|
|
||||||
slots:
|
|
||||||
};
|
|
||||||
|
|
||||||
QTEST_GUILESS_MAIN(WonkoVersionListTest)
|
|
||||||
|
|
||||||
#include "tst_WonkoVersionList.moc"
|
|
Loading…
Reference in New Issue
Block a user