diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2022-01-03 17:08:13 +0200 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2022-01-06 07:25:58 +0000 |
commit | 30f2a6b89bedfc5bfda5bba07032d23169230e4e (patch) | |
tree | a6bb9e960a4d81752a90984779524ffcbf5267bb /tests | |
parent | 4cc03d71647ba0f29684f717bb9d8b4d41d75986 (diff) |
Fix replacing components with <TreeName> element
The QHash dictionary used to store component objects before building
the component tree may include keys that are either original names or
overridden tree names of components. Only the former were handled when
removing replaced components from the QHash.
Task-number: QTIFW-2455
Change-Id: I340aa61c724da0da62d7e5a875a38b6ecc0eceb5
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/installer/treename/data/repository/Updates.xml | 16 | ||||
-rw-r--r-- | tests/auto/installer/treename/tst_treename.cpp | 12 |
2 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/installer/treename/data/repository/Updates.xml b/tests/auto/installer/treename/data/repository/Updates.xml index 1ab3caa23..295f076dd 100644 --- a/tests/auto/installer/treename/data/repository/Updates.xml +++ b/tests/auto/installer/treename/data/repository/Updates.xml @@ -116,4 +116,20 @@ <DownloadableArchives>content.7z</DownloadableArchives> <SHA1>3ca69d6bb062c4442fdb20fe0e62bb0f04e8a419</SHA1> </PackageUpdate> + <PackageUpdate> + <Name>componentE</Name> + <DisplayName>Component E</DisplayName> + <Description>Component with tree name, is replaced by other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2022-01-01</ReleaseDate> + <TreeName>EToNewRoot</TreeName> + </PackageUpdate> + <PackageUpdate> + <Name>componentF</Name> + <DisplayName>Component F</DisplayName> + <Description>Component that replaces other component</Description> + <Version>1.0.0</Version> + <ReleaseDate>2022-01-01</ReleaseDate> + <Replaces>componentE</Replaces> + </PackageUpdate> </Updates> diff --git a/tests/auto/installer/treename/tst_treename.cpp b/tests/auto/installer/treename/tst_treename.cpp index 58d005848..2945d499a 100644 --- a/tests/auto/installer/treename/tst_treename.cpp +++ b/tests/auto/installer/treename/tst_treename.cpp @@ -47,6 +47,8 @@ private slots: void moveToExistingItemAllowUnstableComponents(); void moveToExistingItemNoUnstableComponents(); + void replaceComponentWithTreeName(); + void init(); void cleanup(); @@ -132,6 +134,16 @@ void tst_TreeName::moveToExistingItemNoUnstableComponents() QVERIFY(!core->componentByName("componentB")); } +void tst_TreeName::replaceComponentWithTreeName() +{ + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/repository")); + + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "componentF")); + QVERIFY(core->componentByName("componentF")->value(scTreeName).isEmpty()); + QVERIFY(!core->componentByName("componentE")); +} + void tst_TreeName::init() { m_installDir = QInstaller::generateTemporaryFileName(); |