diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-02-18 13:50:44 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-03-13 11:57:31 +0000 |
commit | 02a7a7b8c4e4cc8d5cb2ec64074d32a7598c373a (patch) | |
tree | 38b3fd29d6e6317f7d0251e496a52e2384e24a50 | |
parent | 64a0421f11d6222862fe7e5752e99d829d78526c (diff) |
CLI: Add unit tests and more detailed debug info of local installed packages
Change-Id: I37f0950686aeb303328d7e8137fc4c7cfe7e8840
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
-rw-r--r-- | src/libs/installer/globals.cpp | 6 | ||||
-rw-r--r-- | src/libs/installer/globals.h | 2 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 18 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 1 | ||||
-rw-r--r-- | tests/auto/installer/cliinterface/data/components.xml | 24 | ||||
-rw-r--r-- | tests/auto/installer/cliinterface/settings.qrc | 1 | ||||
-rw-r--r-- | tests/auto/installer/cliinterface/tst_cliinterface.cpp | 21 |
7 files changed, 72 insertions, 1 deletions
diff --git a/src/libs/installer/globals.cpp b/src/libs/installer/globals.cpp index 4c40492f0..358c79983 100644 --- a/src/libs/installer/globals.cpp +++ b/src/libs/installer/globals.cpp @@ -42,6 +42,8 @@ const char IFW_PACKAGE_DESCRIPTION[] = "ifw.package.description"; const char IFW_PACKAGE_VERSION[] = "ifw.package.version"; const char IFW_PACKAGE_INSTALLEDVERSION[] = "ifw.package.installedversion"; const char IFW_PACKAGE_RELEASEDATE[] = "ifw.package.releasedate"; +const char IFW_PACKAGE_INSTALLDATE[] = "ifw.package.installdate"; +const char IFW_PACKAGE_UPDATEDATE[] = "ifw.package.updatedate"; const char IFW_PACKAGE_NAME[] = "ifw.package.name"; const char IFW_PACKAGE_DEPENDENCIES[] = "ifw.package.dependencies"; const char IFW_PACKAGE_AUTODEPENDON[] = "ifw.package.autodependon"; @@ -76,6 +78,8 @@ Q_LOGGING_CATEGORY(lcPackageDescription, IFW_PACKAGE_DESCRIPTION) Q_LOGGING_CATEGORY(lcPackageVersion, IFW_PACKAGE_VERSION) Q_LOGGING_CATEGORY(lcPackageInstalledVersion, IFW_PACKAGE_INSTALLEDVERSION) Q_LOGGING_CATEGORY(lcPackageReleasedate, IFW_PACKAGE_RELEASEDATE) +Q_LOGGING_CATEGORY(lcPackageInstalldate, IFW_PACKAGE_INSTALLDATE) +Q_LOGGING_CATEGORY(lcPackageUpdatedate, IFW_PACKAGE_UPDATEDATE) Q_LOGGING_CATEGORY(lcPackageName, IFW_PACKAGE_NAME) Q_LOGGING_CATEGORY(lcPackageDependencies, IFW_PACKAGE_DEPENDENCIES) Q_LOGGING_CATEGORY(lcPackageAutodependon, IFW_PACKAGE_AUTODEPENDON) @@ -107,6 +111,8 @@ QStringList loggingCategories() << QLatin1String(IFW_PACKAGE_VERSION) << QLatin1String(IFW_PACKAGE_INSTALLEDVERSION) << QLatin1String(IFW_PACKAGE_RELEASEDATE) + << QLatin1String(IFW_PACKAGE_INSTALLDATE) + << QLatin1String(IFW_PACKAGE_UPDATEDATE) << QLatin1String(IFW_PACKAGE_NAME) << QLatin1String(IFW_PACKAGE_DEPENDENCIES) << QLatin1String(IFW_PACKAGE_AUTODEPENDON) diff --git a/src/libs/installer/globals.h b/src/libs/installer/globals.h index e8f19130e..2cbb44430 100644 --- a/src/libs/installer/globals.h +++ b/src/libs/installer/globals.h @@ -47,6 +47,8 @@ INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageDescription) INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageVersion) INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageInstalledVersion) INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageReleasedate) +INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageInstallDate) +INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageUpdateDate) INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageName) INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageDependencies) INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageAutodependon) diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 36c9935ce..a1ba7e1f2 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -2050,6 +2050,22 @@ void PackageManagerCore::printPackageInformation(const QString &name, const Pack qCDebug(QInstaller::lcPackageInstalledVersion).noquote() << "\tInstalled version:" << installedPackages.value(name).version; } +void PackageManagerCore::printLocalPackageInformation(const KDUpdater::LocalPackage package) const +{ + qCDebug(QInstaller::lcPackageName).noquote() << "Id:" << package.name; + qCDebug(QInstaller::lcPackageDisplayname).noquote() << "\tDisplay name:" << package.title; + qCDebug(QInstaller::lcPackageVersion).noquote() << "\tVersion:" << package.version; + qCDebug(QInstaller::lcPackageDescription).noquote() << "\tDescription:" << package.description; + qCDebug(QInstaller::lcPackageDependencies).noquote() << "\tDependencies:" << package.dependencies; + qCDebug(QInstaller::lcPackageAutodependon).noquote() << "\tAutodependon:" << package.autoDependencies; + qCDebug(QInstaller::lcPackageVirtual).noquote() << "\tVirtual:" << package.virtualComp; + qCDebug(QInstaller::lcPackageForcedinstallation).noquote() << "\tForced installation:" << package.forcedInstallation; + qCDebug(QInstaller::lcPackageCheckable).noquote() << "\tCheckable:" << package.checkable; + qCDebug(QInstaller::lcPackageUncompressedSize).noquote() << "\tUncompressed size:" << package.uncompressedSize; + qCDebug(QInstaller::lcPackageInstallDate).noquote() << "\tInstalled:" << package.installDate; + qCDebug(QInstaller::lcPackageUpdateDate).noquote() << "\tLast updated:" << package.lastUpdateDate; +} + bool PackageManagerCore::componentUninstallableFromCommandLine(const QString &componentName) { // We will do a recursive check for every child this component has. @@ -2083,7 +2099,7 @@ void PackageManagerCore::listInstalledPackages() const QStringList &keys = installedPackages.keys(); foreach (const QString &key, keys) { KDUpdater::LocalPackage package = installedPackages.value(key); - qCDebug(QInstaller::lcPackageName) << package.name; + printLocalPackageInformation(package); } } diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index 9d4cceaea..1ca0e05ef 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -361,6 +361,7 @@ private: bool fetchPackagesTree(const PackagesList &packages, const LocalPackagesHash installedPackages); void printPackageInformation(const QString &name, const Package *update); + void printLocalPackageInformation(const KDUpdater::LocalPackage package) const; bool componentUninstallableFromCommandLine(const QString &componentName); diff --git a/tests/auto/installer/cliinterface/data/components.xml b/tests/auto/installer/cliinterface/data/components.xml new file mode 100644 index 000000000..d5102787f --- /dev/null +++ b/tests/auto/installer/cliinterface/data/components.xml @@ -0,0 +1,24 @@ +<Packages> + <ApplicationName>Online Installer Example</ApplicationName> + <ApplicationVersion>1.0.0</ApplicationVersion> + <Package> + <Name>A</Name> + <Title>A Title</Title> + <Description>Example component A</Description> + <Version>1.0.2-1</Version> + <LastUpdateDate></LastUpdateDate> + <InstallDate>2020-02-13</InstallDate> + <Size>74</Size> + <Checkable>true</Checkable> + </Package> + <Package> + <Name>B</Name> + <Title>B Title</Title> + <Description>Example component B</Description> + <Version>1.0.0-1</Version> + <LastUpdateDate></LastUpdateDate> + <InstallDate>2020-02-13</InstallDate> + <Size>74</Size> + <Checkable>true</Checkable> + </Package> +</Packages>
\ No newline at end of file diff --git a/tests/auto/installer/cliinterface/settings.qrc b/tests/auto/installer/cliinterface/settings.qrc index c0b643041..e95fff4a0 100644 --- a/tests/auto/installer/cliinterface/settings.qrc +++ b/tests/auto/installer/cliinterface/settings.qrc @@ -3,6 +3,7 @@ <file>data/config.xml</file> <file>data/repository/Updates.xml</file> <file>data/uninstallableComponentsRepository/Updates.xml</file> + <file>data/components.xml</file> </qresource> <qresource prefix="/metadata"> <file>installer-config/config.xml</file> diff --git a/tests/auto/installer/cliinterface/tst_cliinterface.cpp b/tests/auto/installer/cliinterface/tst_cliinterface.cpp index 48410311d..9480732a9 100644 --- a/tests/auto/installer/cliinterface/tst_cliinterface.cpp +++ b/tests/auto/installer/cliinterface/tst_cliinterface.cpp @@ -119,6 +119,27 @@ private slots: core->installSelectedComponentsSilently(QStringList() << QLatin1String("MissingComponent")); } + void testListInstalledPackages() + { + QString loggingRules = (QLatin1String("ifw.* = false\n" + "ifw.package.name = true\n")); + PackageManagerCore core; + core.setPackageManager(); + QLoggingCategory::setFilterRules(loggingRules); + + const QString testDirectory = QInstaller::generateTemporaryFileName(); + QVERIFY(QDir().mkpath(testDirectory)); + QVERIFY(QFile::copy(":/data/components.xml", testDirectory + "/components.xml")); + + core.setValue(scTargetDir, testDirectory); + + QTest::ignoreMessage(QtDebugMsg, "Id: A"); + QTest::ignoreMessage(QtDebugMsg, "Id: B"); + core.listInstalledPackages(); + QDir dir(testDirectory); + + QVERIFY(dir.removeRecursively()); + } }; |