diff --git a/CMakeLists.txt b/CMakeLists.txt index 21a803c..6347c90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,6 +76,9 @@ else() endif() if (CQT_DEPLOYER_TESTS) + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS WebEngineQuick) + + add_subdirectory(testcases) add_subdirectory(tests) else() diff --git a/submodules/zip b/submodules/zip index fefb8d6..81314ff 160000 --- a/submodules/zip +++ b/submodules/zip @@ -1 +1 @@ -Subproject commit fefb8d6acc78b5f63d5a78b86a4900e694bd2862 +Subproject commit 81314fff0a882b72a9ad321e7a3311660125b56e diff --git a/testcases/CMakeLists.txt b/testcases/CMakeLists.txt index 03f376d..f321736 100644 --- a/testcases/CMakeLists.txt +++ b/testcases/CMakeLists.txt @@ -18,6 +18,9 @@ add_subdirectory(TestQtWidgets) if (NOT WIN32) add_subdirectory(QMLFileDialog) add_subdirectory(virtualkeyboard) - add_subdirectory(quicknanobrowser) - add_subdirectory(webui) + + if (Qt${QT_VERSION_MAJOR}WebEngineQuick_FOUND) + add_subdirectory(quicknanobrowser) + add_subdirectory(webui) + endif() endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3452ac9..f649174 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -47,6 +47,10 @@ set(PUBLIC_INCUDE_DIR ${PUBLIC_INCUDE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/modules" add_definitions(-DQT_BASE_DIR="${QT_QT_ROOT}/") add_definitions(-DTEST_BIN_DIR="${CMAKE_CURRENT_LIST_DIR}/../testcases/bin/") +if (Qt${QT_VERSION_MAJOR}WebEngineQuick_FOUND) + add_definitions(-DUSE_WEBENGINE) +endif() + add_executable(${CURRENT_PROJECT} ${SOURCE_CPP}) target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::Test Deploy) diff --git a/tests/modules/modulesqt6_6.cpp b/tests/modules/modulesqt6_6.cpp index 31ac912..6f4fb0d 100644 --- a/tests/modules/modulesqt6_6.cpp +++ b/tests/modules/modulesqt6_6.cpp @@ -16,12 +16,6 @@ QSet ModulesQt6_6::qmlLibs(const QString &distDir) const { TestUtils utils; auto Tree = ModulesQt6_5::qmlLibs(distDir); -#ifdef Q_OS_WIN - -#else - -#endif - return Tree; } diff --git a/tests/modules/modulesqt6_8.cpp b/tests/modules/modulesqt6_8.cpp new file mode 100644 index 0000000..5c8869b --- /dev/null +++ b/tests/modules/modulesqt6_8.cpp @@ -0,0 +1,195 @@ +/* + * Copyright (C) 2023-2024 QuasarApp. + * Distributed under the lgplv3 software license, see the accompanying + * Everyone is permitted to copy and distribute verbatim copies + * of this license document, but changing it is not allowed. + */ + + +#include "modulesqt6_8.h" + +ModulesQt6_8::ModulesQt6_8() {} + +QSet ModulesQt6_8::qmlLibs(const QString &distDir) const { + TestUtils utils; + auto Tree = ModulesQt6_6::qmlLibs(distDir); + +#ifdef Q_OS_LINUX + Tree -= utils.createTree( + { + "./" + distDir + "/qml/QtQml/Base/libqmlplugin.so" , + "./" + distDir + "/qml/QtQml/Base/plugins.qmltypes" , + "./" + distDir + "/qml/QtQml/Base/qmldir", + "./" + distDir + "/qml/QtQml/libqmlmetaplugin.so", + "./" + distDir + "/qml/QtQuick/Controls/Imagine/impl/qtquickcontrols2imaginestyleimplplugin.qmltypes" , + } + ); + + Tree += utils.createTree( + { + "./" + distDir + "//lib/libQt6Network.so", + "./" + distDir + "//lib/libQt6QmlMeta.so", + "./" + distDir + "//lib/libQt6QuickControls2Basic.so", + "./" + distDir + "//lib/libQt6QuickControls2BasicStyleImpl.so", + "./" + distDir + "//lib/libQt6QuickControls2FluentWinUI3StyleImpl.so", + "./" + distDir + "//lib/libQt6QuickControls2Fusion.so", + "./" + distDir + "//lib/libQt6QuickControls2FusionStyleImpl.so", + "./" + distDir + "//lib/libQt6QuickControls2Imagine.so", + "./" + distDir + "//lib/libQt6QuickControls2ImagineStyleImpl.so", + "./" + distDir + "//lib/libQt6QuickControls2Material.so", + "./" + distDir + "//lib/libQt6QuickControls2MaterialStyleImpl.so", + "./" + distDir + "//lib/libQt6QuickControls2Universal.so", + "./" + distDir + "//lib/libQt6QuickControls2UniversalStyleImpl.so", + "./" + distDir + "//lib/libQt6QuickEffects.so", + "./" + distDir + "//lib/libQt6QuickLayouts.so", + "./" + distDir + "//qml/QML/plugins.qmltypes", + "./" + distDir + "//qml/QML/qmldir", + "./" + distDir + "//qml/QtQml/libqmlplugin.so", + "./" + distDir + "//qml/QtQml/plugins.qmltypes", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/ApplicationWindow.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/BusyIndicator.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/Button.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/CheckBox.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/CheckDelegate.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/ComboBox.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/Config.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/DelayButton.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/Dialog.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/DialogButtonBox.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/FocusFrame.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/Frame.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/GroupBox.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/ItemDelegate.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/Menu.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/MenuBar.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/MenuBarItem.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/MenuItem.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/MenuSeparator.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/PageIndicator.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/Popup.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/ProgressBar.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/RadioButton.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/RadioDelegate.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/RangeSlider.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/RoundButton.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/Slider.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/SpinBox.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/StyleImage.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/SwipeDelegate.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/Switch.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/SwitchDelegate.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/TabBar.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/TabButton.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/TextArea.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/TextField.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/ToolBar.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/ToolButton.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/ToolSeparator.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/ToolTip.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/impl/ButtonBackground.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/impl/CheckIndicator.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/impl/RadioIndicator.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/impl/SwitchIndicator.qml", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/impl/libqtquickcontrols2fluentwinui3styleimplplugin.so", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/impl/plugins.qmltypes", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/impl/qmldir", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/libqtquickcontrols2fluentwinui3styleplugin.so", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/plugins.qmltypes", + "./" + distDir + "//qml/QtQuick/Controls/FluentWinUI3/qmldir", + "./" + distDir + "//qml/QtQuick/Controls/Imagine/impl/QuickControls2ImagineStyleImpl.qmltypes", + "./" + distDir + "//qml/QtQuick/Effects/libeffectsplugin.so", + "./" + distDir + "//qml/QtQuick/Effects/plugins.qmltypes", + "./" + distDir + "//qml/QtQuick/Effects/qmldir", + "./" + distDir + "//qml/QtQuick/Layouts/libqquicklayoutsplugin.so", + "./" + distDir + "//qml/QtQuick/Layouts/plugins.qmltypes", + "./" + distDir + "//qml/QtQuick/Layouts/qmldir", + "./" + distDir + "//translations/qtdeclarative_ka.qm" + } + ); +#endif + + return Tree; +} + +QSet ModulesQt6_8::qmlVirtualKeyBoadrLibs(const QString &distDir) const{ + TestUtils utils; + + auto Tree = ModulesQt6_6::qmlVirtualKeyBoadrLibs(distDir); +#ifdef Q_OS_LINUX + Tree -= utils.createTree( + { + "./" + distDir + "plugins/multimedia/libgstreamermediaplugin.so" + } + ); + + Tree += utils.createTree( + { + "./" + distDir + "/translations/qtmultimedia_ka.qm", + "./" + distDir + "/lib/libQt6VirtualKeyboardSettings.so" + } + ); +#endif + return Tree; +} + +QSet ModulesQt6_8::qtWebEngine(const QString &distDir) const{ + TestUtils utils; + + auto Tree = ModulesQt6_6::qtWebEngine(distDir); + +#ifdef Q_OS_LINUX + + + Tree += utils.createTree( + { + "./" + distDir + "/lib/libQt6Network.so", + "./" + distDir + "/lib/libQt6QmlMeta.so", + "./" + distDir + "/lib/libQt6QmlWorkerScript.so", + "./" + distDir + "/translations/qtdeclarative_ka.qm", + "./" + distDir + "/translations/qtserialport_ka.qm", + "./" + distDir + "/translations/qtwebengine_ka.qm" + } + ); +#endif + return Tree; +} + +QSet ModulesQt6_8::qtWebEngineWidgets(const QString &distDir) const{ + TestUtils utils; + + auto Tree = ModulesQt6_6::qtWebEngineWidgets(distDir); + +#ifdef Q_OS_LINUX + + + Tree += utils.createTree( + { + "./" + distDir + "/lib/libQt6Network.so", + "./" + distDir + "/lib/libQt6QmlMeta.so", + "./" + distDir + "/lib/libQt6QmlWorkerScript.so", + "./" + distDir + "/translations/qtdeclarative_ka.qm", + "./" + distDir + "/translations/qtserialport_ka.qm", + "./" + distDir + "/translations/qtwebengine_ka.qm" + } + ); + +#endif + return Tree; +} + +QSet ModulesQt6_8::qtLibs(const QString &distDir) const { + auto Tree = ModulesQt6_6::qtLibs(distDir); + TestUtils utils; + +#ifdef Q_OS_LINUX + + Tree += utils.createTree( + { + "./" + distDir + "/translations/qtbase_ka.qm", + "./" + distDir + "/plugins/wayland-decoration-client/libadwaita.so", + } + ); +#endif + + return Tree; +} diff --git a/tests/modules/modulesqt6_8.h b/tests/modules/modulesqt6_8.h new file mode 100644 index 0000000..ace3fb7 --- /dev/null +++ b/tests/modules/modulesqt6_8.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2023-2024 QuasarApp. + * Distributed under the lgplv3 software license, see the accompanying + * Everyone is permitted to copy and distribute verbatim copies + * of this license document, but changing it is not allowed. + */ + + +#ifndef MODULESQT6_8_H +#define MODULESQT6_8_H + +#include "modulesqt6_6.h" + + +class ModulesQt6_8: public ModulesQt6_6 +{ +public: + ModulesQt6_8(); + QSet qmlLibs(const QString &distDir = DISTRO_DIR) const override; + QSet qmlVirtualKeyBoadrLibs(const QString &distDir = DISTRO_DIR) const override; + QSet qtWebEngine(const QString &distDir = DISTRO_DIR) const override; + QSet qtWebEngineWidgets(const QString &distDir = DISTRO_DIR) const override; + QSet qtLibs(const QString &distDir = DISTRO_DIR) const override; +}; + +#endif // MODULESQT6_8_H diff --git a/tests/tstMain.cpp b/tests/tstMain.cpp index 9c55b18..a4ee887 100644 --- a/tests/tstMain.cpp +++ b/tests/tstMain.cpp @@ -283,6 +283,12 @@ tstMain::tstMain() { cqtTestPath = cqtTestPath + DeployCore::getEnvSeparator() + QT_BASE_DIR + "/../../Tools/QtInstallerFramework/4.7/bin/"; + cqtTestPath = cqtTestPath + + DeployCore::getEnvSeparator() + + QT_BASE_DIR + "/../../Tools/QtInstallerFramework/4.8/bin/"; + cqtTestPath = cqtTestPath + + DeployCore::getEnvSeparator() + + QT_BASE_DIR + "/../../Tools/QtInstallerFramework/4.9/bin/"; qputenv("PATH", cqtTestPath.toLatin1().data()); TestUtils utils; diff --git a/tests/units/linux/extradependstest.cpp b/tests/units/linux/extradependstest.cpp index 425dd20..0da587b 100644 --- a/tests/units/linux/extradependstest.cpp +++ b/tests/units/linux/extradependstest.cpp @@ -26,23 +26,29 @@ void ExtraDependsTest::test() { comapareTree += utils.createTree( { - "./" + DISTRO_DIR + "/lib/libicutu.so.56.1", - "./" + DISTRO_DIR + "/lib/libicuuc.so", - "./" + DISTRO_DIR + "/lib/libicui18n.so", + "./" + DISTRO_DIR + "/lib/libicuio.so", "./" + DISTRO_DIR + "/lib/libicudata.so", - + "./" + DISTRO_DIR + "/lib/libicui18n.so", + "./" + DISTRO_DIR + "/lib/libicuuc.so", }); +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + QString extraLibName = "libicuio.so.73"; + +#else + QString extraLibName = "libicuio.so.56.1"; + +#endif // this cases should contains all icu libs. runTestParams({"-bin", bin, "clear", "-libDir", QT_BASE_DIR, "-recursiveDepth", "4", - "-extraDepends", "libicutu.so.56.1"}, &comapareTree); + "-extraDepends", extraLibName}, &comapareTree); runTestParams({"-bin", bin, "clear" , "-libDir", QT_BASE_DIR, "-recursiveDepth", "4", - "-extraDepends", "TestOnlyC;libicutu.so.56.1"}, &comapareTree); + "-extraDepends", "TestOnlyC;" + extraLibName}, &comapareTree); } diff --git a/tests/units/linux/webenginetest.cpp b/tests/units/linux/webenginetest.cpp index b6831eb..9dfa567 100644 --- a/tests/units/linux/webenginetest.cpp +++ b/tests/units/linux/webenginetest.cpp @@ -7,7 +7,11 @@ #include "webenginetest.h" + +#ifdef USE_WEBENGINE #include "modules.h" +#endif + #include #include #include @@ -16,7 +20,7 @@ void WebEngineTest::test() { -#ifdef Q_OS_UNIX +#ifdef USE_WEBENGINE TestUtils utils; QString bin = TestBinDir + "quicknanobrowser"; @@ -36,7 +40,5 @@ void WebEngineTest::test() { runTestParams({"-bin", bin, "clear" , "-qmake", qmake}, &comapareTree); - - #endif } diff --git a/tests/units/linux/webenginetest.h b/tests/units/linux/webenginetest.h index 2d56b05..e3ea338 100644 --- a/tests/units/linux/webenginetest.h +++ b/tests/units/linux/webenginetest.h @@ -13,6 +13,7 @@ #include +// webenginetest class WebEngineTest: public TestBase, protected TestUtils { public: diff --git a/tests/units/modules.h b/tests/units/modules.h index 4053a3d..6fecd14 100644 --- a/tests/units/modules.h +++ b/tests/units/modules.h @@ -11,7 +11,10 @@ #include #include -#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + #include "modulesqt6_8.h" + class Modules: public ModulesQt6_8 +#elif QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) #include "modulesqt6_6.h" class Modules: public ModulesQt6_6 #elif QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)