From 0a6399b52cc72980b4847510cc183b54c75d1821 Mon Sep 17 00:00:00 2001 From: Jan Dalheimer Date: Mon, 2 Dec 2013 11:09:56 +0100 Subject: Unit testing --- tests/CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 tests/CMakeLists.txt (limited to 'tests/CMakeLists.txt') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 00000000..c35b0d3c --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,82 @@ +find_package(Qt5 COMPONENTS Test Core Network Widgets) + +include_directories(${MMC_SRC}) + +unset(MultiMC_TESTS) +macro(add_unit_test name) + unset(srcs) + foreach(arg ${testname} ${ARGN}) + list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/${arg}) + endforeach() + add_executable(tst_${name} ${srcs}) + qt5_use_modules(tst_${name} Test Core Network Widgets) + target_link_libraries(tst_${name} MultiMC_common) + add_test(tst_${name} tst_${name}) + list(APPEND MultiMC_TESTS tst_${name}) +endmacro() + +macro(add_unit_test2 name) + add_unit_test(${name} tst_${name}.cpp) +endmacro() + +# Tests START # + +add_unit_test2(pathutils) + +# Tests END # + +set(COVERAGE_SOURCE_DIRS + ${MMC_SRC}/logic/* + ${MMC_SRC}/logic/lists/* + ${MMC_SRC}/logic/net/* + ${MMC_SRC}/logic/tasks/* + ${MMC_SRC}/gui/* + ${MMC_SRC}/gui/dialogs/* + ${MMC_SRC}/gui/widgets/* + ${MMC_SRC}/depends/settings/include/* + ${MMC_SRC}/depends/settings/src/* + ${MMC_SRC}/depends/util/include/* + ${MMC_SRC}/depends/util/src/* +) + +if(MultiMC_CODE_COVERAGE) + unset(MultiMC_RUN_TESTS) + unset(MultiMC_TEST_COVERAGE_FILES) + + foreach(test ${MultiMC_TESTS}) + add_custom_target(MultiMC_RUN_TEST_${test} + COMMAND lcov -d ${CMAKE_CURRENT_BINARY_DIR} -z -q # clean test + && lcov -d ${MMC_BIN} -z -q # clean common + && lcov -d ${MMC_BIN}/depends/settings/CMakeFiles/libSettings.dir -z -q # clean settings + && lcov -d ${MMC_BIN}/depends/utils/CMakeFiles/libUtil.dir -z -q # clean utils + && ${MMC_BIN}/${test} -o coverage_${test}.out,xml # run test + && lcov -q --checksum -b ${MMC_SRC} -d ${CMAKE_CURRENT_BINARY_DIR} -c -o coverage_${test}.info # generate for test + && lcov -q --checksum -b ${MMC_SRC} -d ${MMC_BIN} -c -o coverage_common.info # generate for common + && lcov -q --checksum -b ${MMC_SRC} -d ${MMC_BIN}/depends/settings/CMakeFiles/libSettings.dir -c -o coverage_settings.info # generate for settings + && lcov -q --checksum -b ${MMC_SRC} -d ${MMC_BIN}/depends/util/CMakeFiles/libUtil.dir -c -o coverage_utils.info # generate for utils + && lcov -q --checksum -b ${MMC_SRC} -d . + -a coverage_${test}.info -a coverage_common.info -a coverage_settings.info -a coverage_utils.info + -o coverage_${test}-combined.info # combine test and common + && lcov -q --checksum -b ${MMC_SRC} --list-full-path --extract coverage_${test}-combined.info ${COVERAGE_SOURCE_DIRS} -o coverage_${test}-stripped.info # strip + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + VERBATIM + DEPENDS ${test} + COMMENT "Running ${test}..." + ) + list(APPEND MultiMC_TEST_COVERAGE_FILES coverage_${test}-stripped.info) + list(APPEND MultiMC_RUN_TESTS MultiMC_RUN_TEST_${test}) + endforeach(test) + + add_custom_target(MultiMC_GENERATE_COVERAGE + DEPENDS ${MultiMC_RUN_TESTS} + COMMENT "Generating coverage files..." + ) + add_custom_target(MultiMC_GENERATE_COVERAGE_HTML + COMMAND genhtml -t "MultiMC 5 Test Coverage" --num-spaces 4 --demangle-cpp --legend -o ${MMC_SRC}/html/coverage ${MultiMC_TEST_COVERAGE_FILES} + DEPENDS MultiMC_GENERATE_COVERAGE + COMMENT "Generating test coverage html..." + ) + add_custom_target(MultiMC_RUN_TESTS DEPENDS MultiMC_GENERATE_COVERAGE_HTML) +endif(MultiMC_CODE_COVERAGE) + +add_subdirectory(data) -- cgit From befeeaa15c75485e93d0acaa91bfd7eba7b3d5f7 Mon Sep 17 00:00:00 2001 From: Jan Dalheimer Date: Mon, 2 Dec 2013 12:32:35 +0100 Subject: Add some new folders --- tests/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/CMakeLists.txt') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c35b0d3c..f2a005e1 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -27,6 +27,8 @@ add_unit_test2(pathutils) set(COVERAGE_SOURCE_DIRS ${MMC_SRC}/logic/* + ${MMC_SRC}/logic/auth/* + ${MMC_SRC}/logic/auth/flows/* ${MMC_SRC}/logic/lists/* ${MMC_SRC}/logic/net/* ${MMC_SRC}/logic/tasks/* -- cgit From 1167a66ac89d1510fbb522544e9733cc086f35eb Mon Sep 17 00:00:00 2001 From: Jan Dalheimer Date: Mon, 2 Dec 2013 15:51:30 +0100 Subject: Tests for the user utils --- tests/CMakeLists.txt | 1 + tests/data/tst_userutils-test_createShortcut-unix | 6 +++ tests/tst_userutils.cpp | 66 +++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100755 tests/data/tst_userutils-test_createShortcut-unix create mode 100644 tests/tst_userutils.cpp (limited to 'tests/CMakeLists.txt') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f2a005e1..20863c73 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -22,6 +22,7 @@ endmacro() # Tests START # add_unit_test2(pathutils) +add_unit_test2(userutils) # Tests END # diff --git a/tests/data/tst_userutils-test_createShortcut-unix b/tests/data/tst_userutils-test_createShortcut-unix new file mode 100755 index 00000000..1ce3a2bd --- /dev/null +++ b/tests/data/tst_userutils-test_createShortcut-unix @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Application +TryExec=asdfDest +Exec=asdfDest 'arg1' 'arg2' +Name=asdf +Icon= diff --git a/tests/tst_userutils.cpp b/tests/tst_userutils.cpp new file mode 100644 index 00000000..62bee985 --- /dev/null +++ b/tests/tst_userutils.cpp @@ -0,0 +1,66 @@ +#include +#include +#include "TestUtil.h" + +#include "depends/util/include/userutils.h" + +class UserUtilsTest : public QObject +{ + Q_OBJECT +private +slots: + void initTestCase() + { + + } + void cleanupTestCase() + { + + } + + void test_getDesktop() + { + QCOMPARE(Util::getDesktopDir(), QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)); + } + + void test_createShortcut_data() + { + QTest::addColumn("location"); + QTest::addColumn("dest"); + QTest::addColumn("args"); + QTest::addColumn("name"); + QTest::addColumn("iconLocation"); + QTest::addColumn("result"); + + QTest::newRow("unix") << QDir::currentPath() + << "asdfDest" + << (QStringList() << "arg1" << "arg2") + << "asdf" + << QString() + #if defined(Q_OS_LINUX) + << MULTIMC_GET_TEST_FILE("data/tst_userutils-test_createShortcut-unix") + #elif defined(Q_OS_WIN) + << QString() + #endif + ; + } + + void test_createShortcut() + { + QFETCH(QString, location); + QFETCH(QString, dest); + QFETCH(QStringList, args); + QFETCH(QString, name); + QFETCH(QString, iconLocation); + QFETCH(QByteArray, result); + + QVERIFY(Util::createShortCut(location, dest, args, name, iconLocation)); + QCOMPARE(QString::fromLocal8Bit(TestsInternal::readFile(location + QDir::separator() + name + ".desktop")), QString::fromLocal8Bit(result)); + + //QDir().remove(location); + } +}; + +QTEST_GUILESS_MAIN_MULTIMC(UserUtilsTest) + +#include "tst_userutils.moc" -- cgit From f15306a0ac0b9e449344da07fd6304c5704c0913 Mon Sep 17 00:00:00 2001 From: Petr Mrázek Date: Sat, 14 Dec 2013 14:17:59 +0100 Subject: Use ctest --- CMakeLists.txt | 1 + mmc_updater/src/tests/CMakeLists.txt | 2 +- tests/CMakeLists.txt | 11 ++++------- 3 files changed, 6 insertions(+), 8 deletions(-) (limited to 'tests/CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index be0eced8..8ea5803d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ IF(WIN32) ENDIF() project(MultiMC) +enable_testing() ######## Set CMake options ######## SET(CMAKE_AUTOMOC ON) diff --git a/mmc_updater/src/tests/CMakeLists.txt b/mmc_updater/src/tests/CMakeLists.txt index 2af9b9c0..5de9d096 100644 --- a/mmc_updater/src/tests/CMakeLists.txt +++ b/mmc_updater/src/tests/CMakeLists.txt @@ -34,7 +34,7 @@ macro(ADD_UPDATER_TEST CLASS) set(TEST_TARGET updater_${CLASS}) add_executable(${TEST_TARGET} ${CLASS}.cpp) target_link_libraries(${TEST_TARGET} updatershared) - add_test(${TEST_TARGET} ${TEST_TARGET}) + add_test(NAME ${TEST_TARGET} COMMAND ${TEST_TARGET}) if (APPLE) set_target_properties(${TEST_TARGET} PROPERTIES LINK_FLAGS "-framework Security -framework Cocoa") endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 20863c73..e115af17 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,3 +1,4 @@ +# run the unit tests with `make test` find_package(Qt5 COMPONENTS Test Core Network Widgets) include_directories(${MMC_SRC}) @@ -11,18 +12,14 @@ macro(add_unit_test name) add_executable(tst_${name} ${srcs}) qt5_use_modules(tst_${name} Test Core Network Widgets) target_link_libraries(tst_${name} MultiMC_common) - add_test(tst_${name} tst_${name}) list(APPEND MultiMC_TESTS tst_${name}) -endmacro() - -macro(add_unit_test2 name) - add_unit_test(${name} tst_${name}.cpp) + add_test(NAME ${name} COMMAND tst_${name}) endmacro() # Tests START # -add_unit_test2(pathutils) -add_unit_test2(userutils) +add_unit_test(pathutils tst_pathutils.cpp) +add_unit_test(userutils tst_userutils.cpp) # Tests END # -- cgit