diff options
author | Katja Marttila <katja.marttila@qt.io> | 2022-11-25 11:23:48 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2022-12-12 09:22:30 +0200 |
commit | 662110e1594788ddc54ec379d61776e1bdd82670 (patch) | |
tree | d8fe6fab8b2bb46fff170affdf421f52ef8797c5 /tests/auto | |
parent | 7af2e1aadbee766eae334fe605dcf59af047bfe1 (diff) |
Add test for essential content sha update
Also clearing the foundEssentialUpdate flag in clearAllComponentLists()
function so that unit tests core status will match. As the unit tests
are not done to fully cleared core the foundEssentialUpdate was set to
true although the update was done and other components were installed.
Task-number: QTIFW-2732
Change-Id: I9b6754595b4b20b1ddc95d7587d98474a6967add
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'tests/auto')
8 files changed, 83 insertions, 6 deletions
diff --git a/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/Updates.xml b/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/Updates.xml new file mode 100644 index 000000000..fe5dc4dec --- /dev/null +++ b/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/Updates.xml @@ -0,0 +1,28 @@ +<Updates> + <ApplicationName>{AnyApplication}</ApplicationName> + <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> + <PackageUpdate> + <Name>componentA</Name> + <DisplayName>Component A</DisplayName> + <Description>Component A.</Description> + <Version>0.1.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile CompressedSize="283" UncompressedSize="101" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <ContentSha1>5</ContentSha1> + </PackageUpdate> + <PackageUpdate> + <Name>componentEssential</Name> + <DisplayName>Component Essential</DisplayName> + <Description>Component Essential</Description> + <Essential>true</Essential> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>80</SortingPriority> + <UpdateFile UncompressedSize="101" CompressedSize="283" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <ContentSha1>10</ContentSha1> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/componentA/0.1.0content.7z b/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/componentA/0.1.0content.7z Binary files differnew file mode 100644 index 000000000..bdbabc7fd --- /dev/null +++ b/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/componentA/0.1.0content.7z diff --git a/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/componentEssential/1.0.0content.7z b/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/componentEssential/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..9c86042c0 --- /dev/null +++ b/tests/auto/installer/contentshaupdate/data/repositoryUpdateWithEssential/componentEssential/1.0.0content.7z diff --git a/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/Updates.xml b/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/Updates.xml new file mode 100644 index 000000000..f76c03faa --- /dev/null +++ b/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/Updates.xml @@ -0,0 +1,27 @@ +<Updates> + <ApplicationName>{AnyApplication}</ApplicationName> + <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> + <PackageUpdate> + <Name>componentA</Name> + <DisplayName>Component A</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile OS="Any" CompressedSize="283" UncompressedSize="101"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <ContentSha1>10</ContentSha1> + </PackageUpdate> + <PackageUpdate> + <Name>componentEssential</Name> + <DisplayName>Component Essential</DisplayName> + <Description>Component Essential</Description> + <Essential>true</Essential> + <Version>2.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>80</SortingPriority> + <UpdateFile UncompressedSize="101" CompressedSize="283" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/componentA/1.0.0content.7z b/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/componentA/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..46a9f1d1e --- /dev/null +++ b/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/componentA/1.0.0content.7z diff --git a/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/componentEssential/2.0.0content.7z b/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/componentEssential/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..435f260ee --- /dev/null +++ b/tests/auto/installer/contentshaupdate/data/repositoryWithEssential/componentEssential/2.0.0content.7z diff --git a/tests/auto/installer/contentshaupdate/settings.qrc b/tests/auto/installer/contentshaupdate/settings.qrc index a5d045f46..e3426be92 100644 --- a/tests/auto/installer/contentshaupdate/settings.qrc +++ b/tests/auto/installer/contentshaupdate/settings.qrc @@ -5,10 +5,16 @@ <file>data/repository/componentB/1.0.0content.7z</file> <file>data/repository/componentC/1.0.0content.7z</file> <file>data/repository/componentD/1.0.0content.7z</file> + <file>data/repositoryWithEssential/Updates.xml</file> + <file>data/repositoryWithEssential/componentA/1.0.0content.7z</file> + <file>data/repositoryWithEssential/componentEssential/2.0.0content.7z</file> <file>data/repositoryUpdate/Updates.xml</file> <file>data/repositoryUpdate/componentA/0.1.0content.7z</file> <file>data/repositoryUpdate/componentB/0.1.0content.7z</file> <file>data/repositoryUpdate/componentC/2.0.0content.7z</file> <file>data/repositoryUpdate/componentD/2.0.0content.7z</file> + <file>data/repositoryUpdateWithEssential/Updates.xml</file> + <file>data/repositoryUpdateWithEssential/componentA/0.1.0content.7z</file> + <file>data/repositoryUpdateWithEssential/componentEssential/1.0.0content.7z</file> </qresource> </RCC> diff --git a/tests/auto/installer/contentshaupdate/tst_contentshaupdate.cpp b/tests/auto/installer/contentshaupdate/tst_contentshaupdate.cpp index d8d2f5377..5d282fe38 100644 --- a/tests/auto/installer/contentshaupdate/tst_contentshaupdate.cpp +++ b/tests/auto/installer/contentshaupdate/tst_contentshaupdate.cpp @@ -58,34 +58,50 @@ private slots: void updateWithContentSha1_data() { + QTest::addColumn<QString>("repository"); + QTest::addColumn<QString>("repositoryForUpdate"); QTest::addColumn<QString>("component"); QTest::addColumn<QString>("content"); QTest::addColumn<QString>("updatedContent"); QTest::addColumn<PackageManagerCore::Status>("expectedStatusAfterInstall"); QTest::addColumn<PackageManagerCore::Status>("expectedStatusAfterUpdate"); - QTest::newRow("ContentSha1Change") << "componentA" << "1.0.0content.txt" << "0.1.0content.txt" << PackageManagerCore::Success << PackageManagerCore::Success; - QTest::newRow("NewContentSha1") << "componentB" << "1.0.0content.txt" << "0.1.0content.txt" << PackageManagerCore::Success << PackageManagerCore::Success; - QTest::newRow("SameContentSha1") << "componentC" << "1.0.0content.txt" << "1.0.0content.txt" << PackageManagerCore::Success << PackageManagerCore::Canceled; - QTest::newRow("Sha1RemovedFromRepo") << "componentD" << "1.0.0content.txt" << "2.0.0content.txt" << PackageManagerCore::Success << PackageManagerCore::Success; + QTest::newRow("Sha1UpdateForEssential") + << ":///data/repositoryWithEssential" << ":///data/repositoryUpdateWithEssential" + << "componentEssential" << "2.0.0content.txt" << "1.0.0content.txt" + << PackageManagerCore::Success << PackageManagerCore::EssentialUpdated; + QTest::newRow("ContentSha1Change") + << ":///data/repository" << ":///data/repositoryUpdate" << "componentA" << "1.0.0content.txt" << "0.1.0content.txt" + << PackageManagerCore::Success << PackageManagerCore::Success; + QTest::newRow("NewContentSha1") + << ":///data/repository" << ":///data/repositoryUpdate" << "componentB" << "1.0.0content.txt" << "0.1.0content.txt" + << PackageManagerCore::Success << PackageManagerCore::Success; + QTest::newRow("SameContentSha1") + << ":///data/repository" << ":///data/repositoryUpdate" << "componentC" << "1.0.0content.txt" << "1.0.0content.txt" + << PackageManagerCore::Success << PackageManagerCore::Canceled; + QTest::newRow("Sha1RemovedFromRepo") + << ":///data/repository" << ":///data/repositoryUpdate" << "componentD" << "1.0.0content.txt" << "2.0.0content.txt" + << PackageManagerCore::Success << PackageManagerCore::Success; } void updateWithContentSha1() { + QFETCH(QString, repository); + QFETCH(QString, repositoryForUpdate); QFETCH(QString, component); QFETCH(QString, content); QFETCH(QString, updatedContent); QFETCH(PackageManagerCore::Status, expectedStatusAfterInstall); QFETCH(PackageManagerCore::Status, expectedStatusAfterUpdate); - setRepository(":///data/repository"); + setRepository(repository); QCOMPARE(expectedStatusAfterInstall, core->installSelectedComponentsSilently(QStringList() << component)); QCOMPARE(expectedStatusAfterInstall, core->status()); VerifyInstaller::verifyInstallerResources(m_installDir, component, content); core->commitSessionOperations(); core->setPackageManager(); - setRepository(":///data/repositoryUpdate"); + setRepository(repositoryForUpdate); QCOMPARE(expectedStatusAfterUpdate, core->updateComponentsSilently(QStringList())); VerifyInstaller::verifyInstallerResources(m_installDir, component, updatedContent); } |