diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2022-08-24 12:19:11 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2022-10-14 15:15:51 +0300 |
commit | 59ce8c088fca01cfbabe9918302bdb0ee2eaf037 (patch) | |
tree | 0da452a18decd3f286fc2fda63307a7305891c39 /tests | |
parent | 30de0fe3f01ac3d6a0ee0a288d51dc920e4432ca (diff) |
Add persistent metadata file cache
Introduce GenericDataCache and Metadata classes for storing the
fetched metadata files (Updates.xml and uncompressed files from
the meta.7z archives) on local filesystem.
The cache uses a checksum based dictionary to keep track of the
cached metadata items, with the SHA1 sums of downloaded Updates.xml
files being the keys to refer single metadata item. We still need
to download all the Updates.xml files on each fetch to check if the
cached metadata items are applicable for the current repositories.
Update the Updates.xml files in auto-test data to have unique
contents, otherwise there could be conflicts with identical test
repositories, as the tests will also utilize the cache now.
Also omit registering Repository type to the meta-object system in
the class contructors, this is expensive as we construct objects
from the class frequently, in the worst case hundreds of thousands
times. PackageManagerCore already does the registering.
Task-number: QTIFW-2621
Change-Id: Iee10ead68befd722ffe7f18ca48483d5a3666658
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'tests')
23 files changed, 39 insertions, 10 deletions
diff --git a/tests/auto/installer/appendfileoperation/data/repository/Updates.xml b/tests/auto/installer/appendfileoperation/data/repository/Updates.xml index a1c8f6aa2..f12d387a1 100644 --- a/tests/auto/installer/appendfileoperation/data/repository/Updates.xml +++ b/tests/auto/installer/appendfileoperation/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,6 +10,7 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>750eda14d867849aeb2f47d620f6e5f32134f375</SHA1> <DownloadableArchives>content.7z</DownloadableArchives> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/commandlineinstall/data/filequeryrepository/Updates.xml b/tests/auto/installer/commandlineinstall/data/filequeryrepository/Updates.xml index 72b7938d9..7957cde4e 100644 --- a/tests/auto/installer/commandlineinstall/data/filequeryrepository/Updates.xml +++ b/tests/auto/installer/commandlineinstall/data/filequeryrepository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>4b124046df83fcd12fb7126b795a8b5a62602806</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/commandlineinstall/tst_commandlineinstall.cpp b/tests/auto/installer/commandlineinstall/tst_commandlineinstall.cpp index 89f6153ed..1e269b7ff 100644 --- a/tests/auto/installer/commandlineinstall/tst_commandlineinstall.cpp +++ b/tests/auto/installer/commandlineinstall/tst_commandlineinstall.cpp @@ -133,30 +133,30 @@ private slots: QLoggingCategory::setFilterRules(loggingRules); - QTest::ignoreMessage(QtDebugMsg, "Preparing meta information download..."); + QTest::ignoreMessage(QtDebugMsg, "Fetching latest update information..."); QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Cannot install component A. Component " "is installed only as automatic dependency to autoDep.\n")); QCOMPARE(PackageManagerCore::Canceled, core->installSelectedComponentsSilently(QStringList() << QLatin1String("A"))); - QTest::ignoreMessage(QtDebugMsg, "Preparing meta information download..."); + QTest::ignoreMessage(QtDebugMsg, "Fetching latest update information..."); QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Cannot install component AB. Component " "is not checkable, meaning you have to select one of the subcomponents.\n")); QCOMPARE(PackageManagerCore::Canceled, core->installSelectedComponentsSilently(QStringList() << QLatin1String("AB"))); - QTest::ignoreMessage(QtDebugMsg, "Preparing meta information download..."); + QTest::ignoreMessage(QtDebugMsg, "Fetching latest update information..."); QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Cannot install B. Component is virtual.\n")); QCOMPARE(PackageManagerCore::Canceled, core->installSelectedComponentsSilently(QStringList() << QLatin1String("B"))); - QTest::ignoreMessage(QtDebugMsg, "Preparing meta information download..."); + QTest::ignoreMessage(QtDebugMsg, "Fetching latest update information..."); QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Cannot install B.subcomponent. Component " "is a descendant of a virtual component B.\n")); QCOMPARE(PackageManagerCore::Canceled, core->installSelectedComponentsSilently(QStringList() << QLatin1String("B.subcomponent"))); - QTest::ignoreMessage(QtDebugMsg, "Preparing meta information download..."); + QTest::ignoreMessage(QtDebugMsg, "Fetching latest update information..."); QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Cannot install MissingComponent. " "Component not found.\n")); QCOMPARE(PackageManagerCore::Canceled, core->installSelectedComponentsSilently(QStringList() diff --git a/tests/auto/installer/consumeoutputoperationtest/data/repository/Updates.xml b/tests/auto/installer/consumeoutputoperationtest/data/repository/Updates.xml index 6b1856d51..1c3caf7be 100644 --- a/tests/auto/installer/consumeoutputoperationtest/data/repository/Updates.xml +++ b/tests/auto/installer/consumeoutputoperationtest/data/repository/Updates.xml @@ -10,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>4da14562d6515590d145678d21990faa817832bb</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/copydirectoryoperation/data/repository/Updates.xml b/tests/auto/installer/copydirectoryoperation/data/repository/Updates.xml index a1c8f6aa2..fb8c9cf1c 100644 --- a/tests/auto/installer/copydirectoryoperation/data/repository/Updates.xml +++ b/tests/auto/installer/copydirectoryoperation/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,6 +10,7 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>4fd4dd023111fcbbdd1221032c2984d249f4cad1</SHA1> <DownloadableArchives>content.7z</DownloadableArchives> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/copydirectoryoperation/data/xmloperationrepository/Updates.xml b/tests/auto/installer/copydirectoryoperation/data/xmloperationrepository/Updates.xml index 90b26a387..b495f3307 100644 --- a/tests/auto/installer/copydirectoryoperation/data/xmloperationrepository/Updates.xml +++ b/tests/auto/installer/copydirectoryoperation/data/xmloperationrepository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -8,6 +9,7 @@ <Version>1.0.2-1</Version> <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> + <SHA1>4fd4dd023111fcbbdd1221032c2984d249f4cad1</SHA1> <DownloadableArchives>content.7z</DownloadableArchives> <Operations> <Operation name="Mkdir"> diff --git a/tests/auto/installer/createdesktopentryoperation/data/repository/Updates.xml b/tests/auto/installer/createdesktopentryoperation/data/repository/Updates.xml index 77b5a9956..ad6c49c81 100644 --- a/tests/auto/installer/createdesktopentryoperation/data/repository/Updates.xml +++ b/tests/auto/installer/createdesktopentryoperation/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>0746c8292e3799aac4a534a0a1a58d42ef24ed43</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/createshortcutoperation/data/repository/Updates.xml b/tests/auto/installer/createshortcutoperation/data/repository/Updates.xml index 0826afae8..d1909d355 100644 --- a/tests/auto/installer/createshortcutoperation/data/repository/Updates.xml +++ b/tests/auto/installer/createshortcutoperation/data/repository/Updates.xml @@ -5,7 +5,7 @@ <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> - <Description>Example component A</Description> + <Description>Example component for CreateShortcutOperation</Description> <Version>1.0.2-1</Version> <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> diff --git a/tests/auto/installer/deleteoperation/data/repository/Updates.xml b/tests/auto/installer/deleteoperation/data/repository/Updates.xml index 77b5a9956..5a8b28f38 100644 --- a/tests/auto/installer/deleteoperation/data/repository/Updates.xml +++ b/tests/auto/installer/deleteoperation/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>e8b8ce98862d463c855609ed8e139eda17092cc6</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/environmentvariableoperation/data/repository/Updates.xml b/tests/auto/installer/environmentvariableoperation/data/repository/Updates.xml index 6b1856d51..5bcd58c69 100644 --- a/tests/auto/installer/environmentvariableoperation/data/repository/Updates.xml +++ b/tests/auto/installer/environmentvariableoperation/data/repository/Updates.xml @@ -10,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>4b7b52af2d838389a7404c553da74705fc106493</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/installiconsoperation/data/repository/Updates.xml b/tests/auto/installer/installiconsoperation/data/repository/Updates.xml index a1c8f6aa2..201e23c2d 100644 --- a/tests/auto/installer/installiconsoperation/data/repository/Updates.xml +++ b/tests/auto/installer/installiconsoperation/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -10,5 +11,6 @@ <Default>true</Default> <Script>script.qs</Script> <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>13c9e7e67c26e7fbf49cc30887d87140b65e11b5</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/licenseagreement/data/repository/Updates.xml b/tests/auto/installer/licenseagreement/data/repository/Updates.xml index 2afd2a741..c57918162 100644 --- a/tests/auto/installer/licenseagreement/data/repository/Updates.xml +++ b/tests/auto/installer/licenseagreement/data/repository/Updates.xml @@ -9,6 +9,7 @@ <Version>1.0.2-1</Version> <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> + <SHA1>f46c677db8bc779d70d0c72fae264a321caea6f8</SHA1> <Licenses> <License name="GNU GENERAL PUBLIC LICENSE Version 3" file="gpl3.txt"/> </Licenses> diff --git a/tests/auto/installer/messageboxhandler/data/invalidoperation/Updates.xml b/tests/auto/installer/messageboxhandler/data/invalidoperation/Updates.xml index 77b5a9956..f92211497 100644 --- a/tests/auto/installer/messageboxhandler/data/invalidoperation/Updates.xml +++ b/tests/auto/installer/messageboxhandler/data/invalidoperation/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>c8eb49045188859100716ab084452b32fca38d5d</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/messageboxhandler/data/messagebox/Updates.xml b/tests/auto/installer/messageboxhandler/data/messagebox/Updates.xml index 77b5a9956..0781dcfc5 100644 --- a/tests/auto/installer/messageboxhandler/data/messagebox/Updates.xml +++ b/tests/auto/installer/messageboxhandler/data/messagebox/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>ad3157ed059e3369c094e154319de1d255865de5</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/moveoperation/data/repository/Updates.xml b/tests/auto/installer/moveoperation/data/repository/Updates.xml index 6b1856d51..5cdad4e45 100644 --- a/tests/auto/installer/moveoperation/data/repository/Updates.xml +++ b/tests/auto/installer/moveoperation/data/repository/Updates.xml @@ -10,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>badc75810d399a35bae6f6b2cd8acfc1d5b1ccd2</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/registerfiletypeoperation/data/repository/Updates.xml b/tests/auto/installer/registerfiletypeoperation/data/repository/Updates.xml index 0826afae8..6435ae0f7 100644 --- a/tests/auto/installer/registerfiletypeoperation/data/repository/Updates.xml +++ b/tests/auto/installer/registerfiletypeoperation/data/repository/Updates.xml @@ -5,7 +5,7 @@ <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> - <Description>Example component A</Description> + <Description>Example component for RegisterFileTypeOperation</Description> <Version>1.0.2-1</Version> <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> diff --git a/tests/auto/installer/replaceoperation/data/repository/Updates.xml b/tests/auto/installer/replaceoperation/data/repository/Updates.xml index a0ade298c..7585b57a4 100644 --- a/tests/auto/installer/replaceoperation/data/repository/Updates.xml +++ b/tests/auto/installer/replaceoperation/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,6 +10,7 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>edb7672270729f9d34396cb70e6afd12fec90d2b</SHA1> <UpdateFile CompressedSize="225" UncompressedSize="75" OS="Any"/> <DownloadableArchives>content.7z</DownloadableArchives> </PackageUpdate> diff --git a/tests/auto/installer/repository/data/compressedRepository/compressedRepository.7z b/tests/auto/installer/repository/data/compressedRepository/compressedRepository.7z Binary files differindex fa75f2979..335685bb0 100644 --- a/tests/auto/installer/repository/data/compressedRepository/compressedRepository.7z +++ b/tests/auto/installer/repository/data/compressedRepository/compressedRepository.7z diff --git a/tests/auto/installer/repository/data/repository/Updates.xml b/tests/auto/installer/repository/data/repository/Updates.xml index 6fdfec9e5..8ddea3938 100644 --- a/tests/auto/installer/repository/data/repository/Updates.xml +++ b/tests/auto/installer/repository/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> diff --git a/tests/auto/installer/settingsoperation/data/repository/Updates.xml b/tests/auto/installer/settingsoperation/data/repository/Updates.xml index 77b5a9956..eddb160c0 100644 --- a/tests/auto/installer/settingsoperation/data/repository/Updates.xml +++ b/tests/auto/installer/settingsoperation/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>5dc8a98f591998de0c555e194e228fa740a15632</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/installer/simplemovefileoperation/data/repository/Updates.xml b/tests/auto/installer/simplemovefileoperation/data/repository/Updates.xml index 77b5a9956..6df6a436b 100644 --- a/tests/auto/installer/simplemovefileoperation/data/repository/Updates.xml +++ b/tests/auto/installer/simplemovefileoperation/data/repository/Updates.xml @@ -1,6 +1,7 @@ <Updates> <ApplicationName>{AnyApplication}</ApplicationName> <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> @@ -9,5 +10,6 @@ <ReleaseDate>2015-01-01</ReleaseDate> <Default>true</Default> <Script>script.qs</Script> + <SHA1>8f2df84c9eada2570c02a7df573288e5cb6644e2</SHA1> </PackageUpdate> </Updates> diff --git a/tests/auto/tools/repotest/test_package_versions/repository_1/Updates.xml b/tests/auto/tools/repotest/test_package_versions/repository_1/Updates.xml index dfae8c8bd..edb6515bd 100644 --- a/tests/auto/tools/repotest/test_package_versions/repository_1/Updates.xml +++ b/tests/auto/tools/repotest/test_package_versions/repository_1/Updates.xml @@ -5,7 +5,7 @@ <PackageUpdate> <Name>A</Name> <DisplayName>A</DisplayName> - <Description>Example component A</Description> + <Description>Test component A</Description> <Version>2.0.0</Version> <ReleaseDate>2020-01-01</ReleaseDate> <Default>true</Default> @@ -17,7 +17,7 @@ <PackageUpdate> <Name>B</Name> <DisplayName>B</DisplayName> - <Description>Example component B</Description> + <Description>Test component B</Description> <Version>1.0.0</Version> <ReleaseDate>2020-01-01</ReleaseDate> <Default>true</Default> diff --git a/tests/auto/tools/repotest/tst_repotest.cpp b/tests/auto/tools/repotest/tst_repotest.cpp index af48ba3fc..f1c0ae9dd 100644 --- a/tests/auto/tools/repotest/tst_repotest.cpp +++ b/tests/auto/tools/repotest/tst_repotest.cpp @@ -574,7 +574,7 @@ private slots: private: QInstallerTools::RepositoryInfo m_repoInfo; QInstallerTools::PackageInfoVector m_packages; - TempDirDeleter m_tempDirDeleter; + TempPathDeleter m_tempDirDeleter; }; QTEST_MAIN(tst_repotest) |