diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-03-18 13:07:39 +0200 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-04-09 09:19:48 +0300 |
commit | 6c70f89e8e8e312a4a738c180742c0ab41b3ab95 (patch) | |
tree | 4093246a789b25125b074aa6b682a3a60e8c497e /tests | |
parent | 8f97bf0ba510a374d4ce3ab040a513c62779454f (diff) |
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 <katja.marttila@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/installer/cliinterface/data/repository/Updates.xml | 2 | ||||
-rw-r--r-- | tests/auto/installer/cliinterface/tst_cliinterface.cpp | 18 |
2 files changed, 19 insertions, 1 deletions
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 @@ <Description>Example component B</Description> <Version>1.0.0-1</Version> <ReleaseDate>2015-01-01</ReleaseDate> - <Default>true</Default> + <Default>false</Default> <UpdateFile CompressedSize="222" OS="Any" UncompressedSize="72"/> <DownloadableArchives>content.7z</DownloadableArchives> <SHA1>9170d55a6af81c1a6a63d708a4ab6ed359775cd9</SHA1> 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: "</availablepackages>\n"); core->listAvailablePackages(QLatin1String("^C")); + // 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); + + 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); + // Need to change rules here to catch messages QLoggingCategory::setFilterRules("ifw.* = true\n"); |