summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2022-01-03 17:08:13 +0200
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2022-01-06 07:25:58 +0000
commit30f2a6b89bedfc5bfda5bba07032d23169230e4e (patch)
treea6bb9e960a4d81752a90984779524ffcbf5267bb /tests
parent4cc03d71647ba0f29684f717bb9d8b4d41d75986 (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.xml16
-rw-r--r--tests/auto/installer/treename/tst_treename.cpp12
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();