summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-02-18 13:50:44 +0200
committerKatja Marttila <katja.marttila@qt.io>2020-03-13 11:57:31 +0000
commit02a7a7b8c4e4cc8d5cb2ec64074d32a7598c373a (patch)
tree38b3fd29d6e6317f7d0251e496a52e2384e24a50
parent64a0421f11d6222862fe7e5752e99d829d78526c (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.cpp6
-rw-r--r--src/libs/installer/globals.h2
-rw-r--r--src/libs/installer/packagemanagercore.cpp18
-rw-r--r--src/libs/installer/packagemanagercore.h1
-rw-r--r--tests/auto/installer/cliinterface/data/components.xml24
-rw-r--r--tests/auto/installer/cliinterface/settings.qrc1
-rw-r--r--tests/auto/installer/cliinterface/tst_cliinterface.cpp21
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());
+ }
};