diff options
-rw-r--r-- | src/libs/installer/globals.cpp | 7 | ||||
-rw-r--r-- | src/libs/installer/globals.h | 1 | ||||
-rw-r--r-- | src/libs/installer/loggingutils.cpp | 15 | ||||
-rw-r--r-- | src/libs/installer/loggingutils.h | 2 | ||||
-rw-r--r-- | src/sdk/commandlineinterface.cpp | 2 | ||||
-rw-r--r-- | src/sdk/sdkapp.h | 9 | ||||
-rw-r--r-- | tests/auto/installer/cliinterface/tst_cliinterface.cpp | 112 |
7 files changed, 70 insertions, 78 deletions
diff --git a/src/libs/installer/globals.cpp b/src/libs/installer/globals.cpp index 0da4bc3b6..adf1d2f6e 100644 --- a/src/libs/installer/globals.cpp +++ b/src/libs/installer/globals.cpp @@ -33,7 +33,6 @@ const char IFW_SERVER[] = "ifw.server"; const char IFW_INSTALLER_INSTALLLOG[] = "ifw.installer.installlog"; const char IFW_DEVELOPER_BUILD[] = "ifw.developer.build"; -const char IFW_PACKAGE_INFO[] = "ifw.package.info"; // Internal-only, hidden in --help text const char IFW_PROGRESS_INDICATOR[] = "ifw.progress.indicator"; @@ -61,16 +60,10 @@ namespace QInstaller \internal */ -/*! - \fn QInstaller::lcPackageInfo() - \internal -*/ - Q_LOGGING_CATEGORY(lcServer, IFW_SERVER) Q_LOGGING_CATEGORY(lcInstallerInstallLog, IFW_INSTALLER_INSTALLLOG) Q_LOGGING_CATEGORY(lcProgressIndicator, IFW_PROGRESS_INDICATOR) Q_LOGGING_CATEGORY(lcDeveloperBuild, IFW_DEVELOPER_BUILD) -Q_LOGGING_CATEGORY(lcPackageInfo, IFW_PACKAGE_INFO) /*! Returns available logging categories. diff --git a/src/libs/installer/globals.h b/src/libs/installer/globals.h index 5053f6d9f..b22331e2c 100644 --- a/src/libs/installer/globals.h +++ b/src/libs/installer/globals.h @@ -40,7 +40,6 @@ INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcInstallerInstallLog) INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcProgressIndicator) INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcDeveloperBuild) -INSTALLER_EXPORT Q_DECLARE_LOGGING_CATEGORY(lcPackageInfo) QStringList INSTALLER_EXPORT loggingCategories(); diff --git a/src/libs/installer/loggingutils.cpp b/src/libs/installer/loggingutils.cpp index 45f7aab1b..a2b561c53 100644 --- a/src/libs/installer/loggingutils.cpp +++ b/src/libs/installer/loggingutils.cpp @@ -145,10 +145,7 @@ void LoggingHandler::messageHandler(QtMsgType type, const QMessageLogContext &co static Uptime uptime; - QString ba; - if (context.category != lcPackageInfo().categoryName()) { - ba = QLatin1Char('[') + QString::number(uptime.elapsed()) + QStringLiteral("] "); - } + QString ba = QLatin1Char('[') + QString::number(uptime.elapsed()) + QStringLiteral("] "); ba += trimAndPrepend(type, msg); if (type != QtDebugMsg && context.file) { @@ -251,9 +248,9 @@ bool LoggingHandler::outputRedirected() const } /*! - Prints basic information about \a components. + Prints update information from \a components. */ -void LoggingHandler::printComponentInfo(const QList<Component *> components) const +void LoggingHandler::printUpdateInformation(const QList<Component *> components) const { QDomDocument doc; QDomElement root = doc.createElement(QLatin1String("updates")); @@ -267,7 +264,7 @@ void LoggingHandler::printComponentInfo(const QList<Component *> components) con update.setAttribute(QLatin1String("id"), component->value(scName)); root.appendChild(update); } - qCDebug(lcPackageInfo) << qPrintable(doc.toString(4)); + std::cout << qPrintable(doc.toString(4)); } /*! @@ -297,7 +294,7 @@ void LoggingHandler::printLocalPackageInformation(const QList<KDUpdater::LocalPa } root.appendChild(update); } - qCDebug(lcPackageInfo) << qPrintable(doc.toString(4)); + std::cout << qPrintable(doc.toString(4)); } /*! @@ -341,7 +338,7 @@ void LoggingHandler::printPackageInformation(const PackagesList &matchedPackages } root.appendChild(update); } - qCDebug(lcPackageInfo) << qPrintable(doc.toString(4)); + std::cout << qPrintable(doc.toString(4)); } /*! diff --git a/src/libs/installer/loggingutils.h b/src/libs/installer/loggingutils.h index a997a6d60..06f0400f8 100644 --- a/src/libs/installer/loggingutils.h +++ b/src/libs/installer/loggingutils.h @@ -57,7 +57,7 @@ public: VerbosityLevel verboseLevel() const; bool outputRedirected() const; - void printComponentInfo(const QList<Component *> components) const; + void printUpdateInformation(const QList<Component *> components) const; void printLocalPackageInformation(const QList<KDUpdater::LocalPackage> &packages) const; void printPackageInformation(const PackagesList &matchedPackages, const LocalPackagesHash &installedPackages) const; diff --git a/src/sdk/commandlineinterface.cpp b/src/sdk/commandlineinterface.cpp index a63b2a5bf..6b674364c 100644 --- a/src/sdk/commandlineinterface.cpp +++ b/src/sdk/commandlineinterface.cpp @@ -108,7 +108,7 @@ int CommandLineInterface::checkUpdates() qCWarning(QInstaller::lcInstallerInstallLog) << "There are currently no updates available."; return EXIT_SUCCESS; } - QInstaller::LoggingHandler::instance().printComponentInfo(components); + QInstaller::LoggingHandler::instance().printUpdateInformation(components); return EXIT_SUCCESS; } diff --git a/src/sdk/sdkapp.h b/src/sdk/sdkapp.h index 60eca8103..0c09897d7 100644 --- a/src/sdk/sdkapp.h +++ b/src/sdk/sdkapp.h @@ -149,18 +149,15 @@ public: loggingRules = QLatin1String("ifw.* = false\n" "ifw.installer.* = true\n" "ifw.server = true\n" - "ifw.progress.indicator = true\n" - "ifw.package.* = true\n"); + "ifw.progress.indicator = true\n"); } else { // enable all except detailed package information and developer specific logging loggingRules = QLatin1String("ifw.* = true\n" - "ifw.developer.build = false\n" - "ifw.package.* = true\n"); + "ifw.developer.build = false\n"); } if (QInstaller::LoggingHandler::instance().verboseLevel() == QInstaller::LoggingHandler::Detailed) { - loggingRules += QLatin1String("\nifw.developer.build = true\n" - "ifw.package.* = true\n"); + loggingRules += QLatin1String("\nifw.developer.build = true\n"); } QLoggingCategory::setFilterRules(loggingRules); qCDebug(QInstaller::lcInstallerInstallLog).noquote() << "Arguments:" << diff --git a/tests/auto/installer/cliinterface/tst_cliinterface.cpp b/tests/auto/installer/cliinterface/tst_cliinterface.cpp index d880310ac..25910cd9c 100644 --- a/tests/auto/installer/cliinterface/tst_cliinterface.cpp +++ b/tests/auto/installer/cliinterface/tst_cliinterface.cpp @@ -34,6 +34,9 @@ #include <QLoggingCategory> #include <QTest> +#include <iostream> +#include <sstream> + using namespace QInstaller; class tst_CLIInterface : public QObject @@ -43,8 +46,7 @@ class tst_CLIInterface : public QObject private slots: void testListAvailablePackages() { - QString loggingRules = (QLatin1String("ifw.* = false\n" - "ifw.package.* = true\n")); + QString loggingRules = (QLatin1String("ifw.* = false\n")); QTest::ignoreMessage(QtDebugMsg, "Operations sanity check succeeded."); @@ -52,61 +54,52 @@ private slots: (m_installDir, ":///data/repository"); QLoggingCategory::setFilterRules(loggingRules); + auto func = &PackageManagerCore::listAvailablePackages; - QTest::ignoreMessage(QtDebugMsg, "<availablepackages>\n" - " <package name=\"AB\" displayname=\"AB\" version=\"1.0.2-1\"/>\n" - " <package name=\"A\" displayname=\"A\" version=\"1.0.2-1\"/>\n" - " <package name=\"B\" displayname=\"B\" version=\"1.0.0-1\"/>\n" - " <package name=\"C\" displayname=\"C\" version=\"1.0.0-1\"/>\n" - "</availablepackages>\n"); - core->listAvailablePackages(QLatin1String(".")); - - QTest::ignoreMessage(QtDebugMsg, "<availablepackages>\n" - " <package name=\"AB\" displayname=\"AB\" version=\"1.0.2-1\"/>\n" - " <package name=\"A\" displayname=\"A\" version=\"1.0.2-1\"/>\n" - "</availablepackages>\n"); - core->listAvailablePackages(QLatin1String("A")); + verifyListPackagesMessage(core, QLatin1String("<availablepackages>\n" + " <package name=\"AB\" displayname=\"AB\" version=\"1.0.2-1\"/>\n" + " <package name=\"A\" displayname=\"A\" version=\"1.0.2-1\"/>\n" + " <package name=\"B\" displayname=\"B\" version=\"1.0.0-1\"/>\n" + " <package name=\"C\" displayname=\"C\" version=\"1.0.0-1\"/>\n" + "</availablepackages>\n"), func, QLatin1String("."), QHash<QString, QString>()); + verifyListPackagesMessage(core, QLatin1String("<availablepackages>\n" + " <package name=\"AB\" displayname=\"AB\" version=\"1.0.2-1\"/>\n" + " <package name=\"A\" displayname=\"A\" version=\"1.0.2-1\"/>\n" + "</availablepackages>\n"), func, QLatin1String("A"), QHash<QString, QString>()); - QTest::ignoreMessage(QtDebugMsg, "<availablepackages>\n" - " <package name=\"AB\" displayname=\"AB\" version=\"1.0.2-1\"/>\n" - " <package name=\"A\" displayname=\"A\" version=\"1.0.2-1\"/>\n" - "</availablepackages>\n"); - core->listAvailablePackages(QLatin1String("A.*")); + verifyListPackagesMessage(core, QLatin1String("<availablepackages>\n" + " <package name=\"AB\" displayname=\"AB\" version=\"1.0.2-1\"/>\n" + " <package name=\"A\" displayname=\"A\" version=\"1.0.2-1\"/>\n" + "</availablepackages>\n"), func, QLatin1String("A.*"), QHash<QString, QString>()); + verifyListPackagesMessage(core, QLatin1String("<availablepackages>\n" + " <package name=\"B\" displayname=\"B\" version=\"1.0.0-1\"/>\n" + "</availablepackages>\n"), func, QLatin1String("^B"), QHash<QString, QString>()); - QTest::ignoreMessage(QtDebugMsg, "<availablepackages>\n" - " <package name=\"B\" displayname=\"B\" version=\"1.0.0-1\"/>\n" - "</availablepackages>\n"); - core->listAvailablePackages(QLatin1String("^B")); + verifyListPackagesMessage(core, QLatin1String("<availablepackages>\n" + " <package name=\"B\" displayname=\"B\" version=\"1.0.0-1\"/>\n" + "</availablepackages>\n"), func, QLatin1String("^B.*"), QHash<QString, QString>()); - QTest::ignoreMessage(QtDebugMsg, "<availablepackages>\n" - " <package name=\"B\" displayname=\"B\" version=\"1.0.0-1\"/>\n" - "</availablepackages>\n"); - core->listAvailablePackages(QLatin1String("^B.*")); - - QTest::ignoreMessage(QtDebugMsg, "<availablepackages>\n" - " <package name=\"C\" displayname=\"C\" version=\"1.0.0-1\"/>\n" - "</availablepackages>\n"); - core->listAvailablePackages(QLatin1String("^C")); + verifyListPackagesMessage(core, QLatin1String("<availablepackages>\n" + " <package name=\"C\" displayname=\"C\" version=\"1.0.0-1\"/>\n" + "</availablepackages>\n"), func, QLatin1String("^C"), QHash<QString, QString>()); // Test with filters - QTest::ignoreMessage(QtDebugMsg, "<availablepackages>\n" - " <package name=\"AB\" displayname=\"AB\" version=\"1.0.2-1\"/>\n" - " <package name=\"A\" displayname=\"A\" version=\"1.0.2-1\"/>\n" - "</availablepackages>\n"); QHash<QString, QString> searchHash { { "Version", "1.0.2" }, { "DisplayName", "A" } }; - core->listAvailablePackages(QString(), searchHash); + verifyListPackagesMessage(core, QLatin1String("<availablepackages>\n" + " <package name=\"AB\" displayname=\"AB\" version=\"1.0.2-1\"/>\n" + " <package name=\"A\" displayname=\"A\" version=\"1.0.2-1\"/>\n" + "</availablepackages>\n"), func, QString(), searchHash); - QTest::ignoreMessage(QtDebugMsg, "<availablepackages>\n" - " <package name=\"B\" displayname=\"B\" version=\"1.0.0-1\"/>\n" - "</availablepackages>\n"); searchHash.clear(); searchHash.insert("Default", "false"); - core->listAvailablePackages(QString(), searchHash); + verifyListPackagesMessage(core, QLatin1String("<availablepackages>\n" + " <package name=\"B\" displayname=\"B\" version=\"1.0.0-1\"/>\n" + "</availablepackages>\n"), func, QString(), searchHash); // Need to change rules here to catch messages QLoggingCategory::setFilterRules("ifw.* = true\n"); @@ -190,11 +183,11 @@ private slots: void testListInstalledPackages() { - QString loggingRules = (QLatin1String("ifw.* = false\n" - "ifw.package.* = true\n")); + QString loggingRules = (QLatin1String("ifw.* = false\n")); PackageManagerCore core; core.setPackageManager(); QLoggingCategory::setFilterRules(loggingRules); + auto func = &PackageManagerCore::listInstalledPackages; const QString testDirectory = QInstaller::generateTemporaryFileName(); QVERIFY(QDir().mkpath(testDirectory)); @@ -202,16 +195,14 @@ private slots: core.setValue(scTargetDir, testDirectory); - QTest::ignoreMessage(QtDebugMsg, "<localpackages>\n" - " <package name=\"A\" displayname=\"A Title\" version=\"1.0.2-1\"/>\n" - " <package name=\"B\" displayname=\"B Title\" version=\"1.0.0-1\"/>\n" - "</localpackages>\n"); - core.listInstalledPackages(); + verifyListPackagesMessage(&core, QLatin1String("<localpackages>\n" + " <package name=\"A\" displayname=\"A Title\" version=\"1.0.2-1\"/>\n" + " <package name=\"B\" displayname=\"B Title\" version=\"1.0.0-1\"/>\n" + "</localpackages>\n"), func, QString()); - QTest::ignoreMessage(QtDebugMsg, "<localpackages>\n" - " <package name=\"A\" displayname=\"A Title\" version=\"1.0.2-1\"/>\n" - "</localpackages>\n"); - core.listInstalledPackages(QLatin1String("A")); + verifyListPackagesMessage(&core, QLatin1String("<localpackages>\n" + " <package name=\"A\" displayname=\"A Title\" version=\"1.0.2-1\"/>\n" + "</localpackages>\n"), func, QLatin1String("A")); QDir dir(testDirectory); QVERIFY(dir.removeRecursively()); @@ -533,6 +524,21 @@ private slots: } private: + template <typename Func, typename... Args> + void verifyListPackagesMessage(PackageManagerCore *core, const QString &message, + Func func, Args... args) + { + std::ostringstream stream; + std::streambuf *buf = std::cout.rdbuf(); + std::cout.rdbuf(stream.rdbuf()); + + (core->*func)(std::forward<Args>(args)...); + + std::cout.rdbuf(buf); + QVERIFY(stream && stream.str() == message.toStdString()); + } + +private: QString m_installDir; }; |