From 6c70f89e8e8e312a4a738c180742c0ab41b3ab95 Mon Sep 17 00:00:00 2001 From: Arttu Tarkiainen Date: Thu, 18 Mar 2021 13:07:39 +0200 Subject: CLI: Add support for additional filtering of search results Search command results can now be optionally filtered with the '--filter-packages'-option, which takes an unspecified count of key-value pairs that contain the desired package information element and a regular expression used to find matches in the element. Example usage: 'installer --fp "Version=1.0, Description=Some text" search *' Only the packages which match all given filter rules are included in the output print. Task-number: QTIFW-2168 Change-Id: I788b065d95952b988489c36db80b3c859b970f05 Reviewed-by: Katja Marttila --- .../installer/cliinterface/data/repository/Updates.xml | 2 +- tests/auto/installer/cliinterface/tst_cliinterface.cpp | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/auto/installer/cliinterface/data/repository/Updates.xml b/tests/auto/installer/cliinterface/data/repository/Updates.xml index e5bc4f8af..52707d09d 100644 --- a/tests/auto/installer/cliinterface/data/repository/Updates.xml +++ b/tests/auto/installer/cliinterface/data/repository/Updates.xml @@ -19,7 +19,7 @@ Example component B 1.0.0-1 2015-01-01 - true + false content.7z 9170d55a6af81c1a6a63d708a4ab6ed359775cd9 diff --git a/tests/auto/installer/cliinterface/tst_cliinterface.cpp b/tests/auto/installer/cliinterface/tst_cliinterface.cpp index 98ea99133..d9497d53f 100644 --- a/tests/auto/installer/cliinterface/tst_cliinterface.cpp +++ b/tests/auto/installer/cliinterface/tst_cliinterface.cpp @@ -90,6 +90,24 @@ private slots: "\n"); core->listAvailablePackages(QLatin1String("^C")); + // Test with filters + QTest::ignoreMessage(QtDebugMsg, "\n" + " \n" + " \n" + "\n"); + QHash searchHash { + { "Version", "1.0.2" }, + { "DisplayName", "A" } + }; + core->listAvailablePackages(QString(), searchHash); + + QTest::ignoreMessage(QtDebugMsg, "\n" + " \n" + "\n"); + searchHash.clear(); + searchHash.insert("Default", "false"); + core->listAvailablePackages(QString(), searchHash); + // Need to change rules here to catch messages QLoggingCategory::setFilterRules("ifw.* = true\n"); -- cgit v1.2.3