summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-03-23 12:31:31 +0200
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-04-12 12:24:30 +0300
commitb06f5b541748afc30bff787858702ed575662382 (patch)
tree302fbd39905ef74e44a97edcc8019358eeb410e0 /tests
parent6c70f89e8e8e312a4a738c180742c0ab41b3ab95 (diff)
Offline-generator: Fix duplicate package entries in internal Updates.xml
In a somewhat rare case, it is possible that a same package exist in multiple repositories. The latest available package from remotes is used - however if we select that package for inclusion and also implicitly get some other package from the another repository it exists in with an older version (autodependency, etc.), that repository is then also used to parse package information, and we store a duplicate entry of the package to the Updates.xml to-be-written to the offline installer binary. Fix by appending only the package with the latest version to the PackageInfoVector object used to temporarily hold the package information. Task-number: QTIFW-2190 Change-Id: Icdb3dc979153dfada37fdb0aabb3c718bc8aedff Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/tools/repotest/settings.qrc24
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7zbin0 -> 32 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7z.sha11
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0meta.7zbin0 -> 209 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7zbin0 -> 32 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7z.sha11
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0meta.7zbin0 -> 106 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_1/Updates.xml28
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7zbin0 -> 32 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7z.sha11
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0meta.7zbin0 -> 221 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7zbin0 -> 32 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7z.sha11
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0meta.7zbin0 -> 106 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_2/Updates.xml28
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7zbin0 -> 32 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7z.sha11
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0meta.7zbin0 -> 221 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7zbin0 -> 32 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7z.sha11
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0meta.7zbin0 -> 106 bytes
-rw-r--r--tests/auto/tools/repotest/test_package_versions/repository_3/Updates.xml28
-rw-r--r--tests/auto/tools/repotest/tst_repotest.cpp98
23 files changed, 179 insertions, 33 deletions
diff --git a/tests/auto/tools/repotest/settings.qrc b/tests/auto/tools/repotest/settings.qrc
index e731af222..a0b5743fe 100644
--- a/tests/auto/tools/repotest/settings.qrc
+++ b/tests/auto/tools/repotest/settings.qrc
@@ -31,5 +31,29 @@
<file>repository_unite/C/1.0.0content.7z.sha1</file>
<file>repository_unite/2020-11-10-0931_meta.7z</file>
<file>repository_unite/Updates.xml</file>
+
+ <file>test_package_versions/repository_1/A/2.0.0content.7z</file>
+ <file>test_package_versions/repository_1/A/2.0.0content.7z.sha1</file>
+ <file>test_package_versions/repository_1/A/2.0.0meta.7z</file>
+ <file>test_package_versions/repository_1/B/1.0.0content.7z</file>
+ <file>test_package_versions/repository_1/B/1.0.0content.7z.sha1</file>
+ <file>test_package_versions/repository_1/B/1.0.0meta.7z</file>
+ <file>test_package_versions/repository_1/Updates.xml</file>
+
+ <file>test_package_versions/repository_2/A/1.0.0content.7z</file>
+ <file>test_package_versions/repository_2/A/1.0.0content.7z.sha1</file>
+ <file>test_package_versions/repository_2/A/1.0.0meta.7z</file>
+ <file>test_package_versions/repository_2/B/1.0.0content.7z</file>
+ <file>test_package_versions/repository_2/B/1.0.0content.7z.sha1</file>
+ <file>test_package_versions/repository_2/B/1.0.0meta.7z</file>
+ <file>test_package_versions/repository_2/Updates.xml</file>
+
+ <file>test_package_versions/repository_3/A/1.0.0content.7z</file>
+ <file>test_package_versions/repository_3/A/1.0.0content.7z.sha1</file>
+ <file>test_package_versions/repository_3/A/1.0.0meta.7z</file>
+ <file>test_package_versions/repository_3/B/3.0.0content.7z</file>
+ <file>test_package_versions/repository_3/B/3.0.0content.7z.sha1</file>
+ <file>test_package_versions/repository_3/B/3.0.0meta.7z</file>
+ <file>test_package_versions/repository_3/Updates.xml</file>
</qresource>
</RCC>
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7z b/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7z
new file mode 100644
index 000000000..46e2c9124
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7z.sha1 b/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7z.sha1
new file mode 100644
index 000000000..53010cea2
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7z.sha1
@@ -0,0 +1 @@
+059e5ed8cd3a1fbca08cccfa4075265192603e3f \ No newline at end of file
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0meta.7z b/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0meta.7z
new file mode 100644
index 000000000..af0863696
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0meta.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7z b/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7z
new file mode 100644
index 000000000..46e2c9124
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7z.sha1 b/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7z.sha1
new file mode 100644
index 000000000..53010cea2
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7z.sha1
@@ -0,0 +1 @@
+059e5ed8cd3a1fbca08cccfa4075265192603e3f \ No newline at end of file
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0meta.7z b/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0meta.7z
new file mode 100644
index 000000000..e5be1148e
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0meta.7z
Binary files differ
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
new file mode 100644
index 000000000..dfae8c8bd
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_1/Updates.xml
@@ -0,0 +1,28 @@
+<Updates>
+ <ApplicationName>{AnyApplication}</ApplicationName>
+ <ApplicationVersion>1.0.0</ApplicationVersion>
+ <Checksum>true</Checksum>
+ <PackageUpdate>
+ <Name>A</Name>
+ <DisplayName>A</DisplayName>
+ <Description>Example component A</Description>
+ <Version>2.0.0</Version>
+ <ReleaseDate>2020-01-01</ReleaseDate>
+ <Default>true</Default>
+ <Script>script2.0.0.qs</Script>
+ <UpdateFile UncompressedSize="40" CompressedSize="72" OS="Any"/>
+ <DownloadableArchives>content.7z</DownloadableArchives>
+ <SHA1>da6dae55a8cc3fb9f012e33fa7b9c187a823aa9a</SHA1>
+ </PackageUpdate>
+ <PackageUpdate>
+ <Name>B</Name>
+ <DisplayName>B</DisplayName>
+ <Description>Example component B</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2020-01-01</ReleaseDate>
+ <Default>true</Default>
+ <UpdateFile UncompressedSize="40" CompressedSize="72" OS="Any"/>
+ <DownloadableArchives>content.7z</DownloadableArchives>
+ <SHA1>d88b373458b4bbec38132692061bf1e7aa68e7f7</SHA1>
+ </PackageUpdate>
+</Updates>
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7z b/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7z
new file mode 100644
index 000000000..46e2c9124
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7z.sha1 b/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7z.sha1
new file mode 100644
index 000000000..53010cea2
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7z.sha1
@@ -0,0 +1 @@
+059e5ed8cd3a1fbca08cccfa4075265192603e3f \ No newline at end of file
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0meta.7z b/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0meta.7z
new file mode 100644
index 000000000..c4da482bf
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0meta.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7z b/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7z
new file mode 100644
index 000000000..46e2c9124
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7z.sha1 b/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7z.sha1
new file mode 100644
index 000000000..53010cea2
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7z.sha1
@@ -0,0 +1 @@
+059e5ed8cd3a1fbca08cccfa4075265192603e3f \ No newline at end of file
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0meta.7z b/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0meta.7z
new file mode 100644
index 000000000..e5be1148e
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0meta.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_2/Updates.xml b/tests/auto/tools/repotest/test_package_versions/repository_2/Updates.xml
new file mode 100644
index 000000000..ac12fba4b
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_2/Updates.xml
@@ -0,0 +1,28 @@
+<Updates>
+ <ApplicationName>{AnyApplication}</ApplicationName>
+ <ApplicationVersion>1.0.0</ApplicationVersion>
+ <Checksum>true</Checksum>
+ <PackageUpdate>
+ <Name>A</Name>
+ <DisplayName>A</DisplayName>
+ <Description>Example component A</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2020-01-01</ReleaseDate>
+ <Default>true</Default>
+ <Script>script1.0.0.qs</Script>
+ <UpdateFile UncompressedSize="40" CompressedSize="72" OS="Any"/>
+ <DownloadableArchives>content.7z</DownloadableArchives>
+ <SHA1>da6dae55a8cc3fb9f012e33fa7b9c187a823aa9a</SHA1>
+ </PackageUpdate>
+ <PackageUpdate>
+ <Name>B</Name>
+ <DisplayName>B</DisplayName>
+ <Description>Example component B</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2020-01-01</ReleaseDate>
+ <Default>true</Default>
+ <UpdateFile UncompressedSize="40" CompressedSize="72" OS="Any"/>
+ <DownloadableArchives>content.7z</DownloadableArchives>
+ <SHA1>d88b373458b4bbec38132692061bf1e7aa68e7f7</SHA1>
+ </PackageUpdate>
+</Updates>
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7z b/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7z
new file mode 100644
index 000000000..46e2c9124
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7z.sha1 b/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7z.sha1
new file mode 100644
index 000000000..53010cea2
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7z.sha1
@@ -0,0 +1 @@
+059e5ed8cd3a1fbca08cccfa4075265192603e3f \ No newline at end of file
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0meta.7z b/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0meta.7z
new file mode 100644
index 000000000..3706e8dd8
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0meta.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7z b/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7z
new file mode 100644
index 000000000..46e2c9124
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7z.sha1 b/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7z.sha1
new file mode 100644
index 000000000..53010cea2
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7z.sha1
@@ -0,0 +1 @@
+059e5ed8cd3a1fbca08cccfa4075265192603e3f \ No newline at end of file
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0meta.7z b/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0meta.7z
new file mode 100644
index 000000000..e5be1148e
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0meta.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/test_package_versions/repository_3/Updates.xml b/tests/auto/tools/repotest/test_package_versions/repository_3/Updates.xml
new file mode 100644
index 000000000..40d86538c
--- /dev/null
+++ b/tests/auto/tools/repotest/test_package_versions/repository_3/Updates.xml
@@ -0,0 +1,28 @@
+<Updates>
+ <ApplicationName>{AnyApplication}</ApplicationName>
+ <ApplicationVersion>1.0.0</ApplicationVersion>
+ <Checksum>true</Checksum>
+ <PackageUpdate>
+ <Name>A</Name>
+ <DisplayName>A</DisplayName>
+ <Description>Example component A</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2020-01-01</ReleaseDate>
+ <Default>true</Default>
+ <Script>script1.0.0.qs</Script>
+ <UpdateFile UncompressedSize="40" CompressedSize="72" OS="Any"/>
+ <DownloadableArchives>content.7z</DownloadableArchives>
+ <SHA1>da6dae55a8cc3fb9f012e33fa7b9c187a823aa9a</SHA1>
+ </PackageUpdate>
+ <PackageUpdate>
+ <Name>B</Name>
+ <DisplayName>B</DisplayName>
+ <Description>Example component B</Description>
+ <Version>3.0.0</Version>
+ <ReleaseDate>2020-01-01</ReleaseDate>
+ <Default>true</Default>
+ <UpdateFile UncompressedSize="40" CompressedSize="72" OS="Any"/>
+ <DownloadableArchives>content.7z</DownloadableArchives>
+ <SHA1>d88b373458b4bbec38132692061bf1e7aa68e7f7</SHA1>
+ </PackageUpdate>
+</Updates>
diff --git a/tests/auto/tools/repotest/tst_repotest.cpp b/tests/auto/tools/repotest/tst_repotest.cpp
index c467d21d2..02594f400 100644
--- a/tests/auto/tools/repotest/tst_repotest.cpp
+++ b/tests/auto/tools/repotest/tst_repotest.cpp
@@ -80,10 +80,10 @@ private:
m_repoInfo.packages << ":///packages_update";
}
- void initRepoUpdateFromRepository(const QString &repository)
+ void initRepoUpdateFromRepositories(const QStringList &repositories)
{
clearData();
- m_repoInfo.repositoryPackages << repository;
+ m_repoInfo.repositoryPackages << repositories;
}
void verifyUniteMetadata(const QString &scriptVersion)
@@ -116,7 +116,7 @@ private:
"MetadataName");
}
- void verifyComponentRepository(const QString &componentAVersion, bool hasComponentMeta)
+ void verifyComponentRepository(const QString &componentAVersion, const QString &componentBVersion, bool hasComponentMeta)
{
const QString content = "%1content.7z";
const QString contentSha1 = "%1content.7z.sha1";
@@ -124,10 +124,10 @@ private:
QStringList componentA;
QStringList componentB;
componentA << qPrintable(content.arg(componentAVersion)) << qPrintable(contentSha1.arg(componentAVersion));
- componentB << "1.0.0content.7z" << "1.0.0content.7z.sha1";
+ componentB << qPrintable(content.arg(componentBVersion)) << qPrintable(contentSha1.arg(componentBVersion));
if (hasComponentMeta) {
componentA << qPrintable(meta.arg(componentAVersion));
- componentB << "1.0.0meta.7z";
+ componentB << qPrintable(meta.arg(componentBVersion));
}
VerifyInstaller::verifyFileExistence(m_repoInfo.repositoryDir + "/A", componentA);
VerifyInstaller::verifyFileExistence(m_repoInfo.repositoryDir + "/B", componentB);
@@ -169,14 +169,14 @@ private:
}
}
- void ignoreMessageForCollectingRepository(const QString &repository)
+ void ignoreMessageForCollectingRepository(const QStringList &repositories)
{
const QString message = "Process repository \"%2\"";
QTest::ignoreMessage(QtDebugMsg, "Collecting information about available repository packages...");
- QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(repository)));
+ for (auto &repo : repositories)
+ QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(repo)));
QTest::ignoreMessage(QtDebugMsg, "Collecting information about available packages...");
QTest::ignoreMessage(QtDebugMsg, "No available packages found at the specified location.");
- QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"A\" - \"2.0.0\"");
}
void ignoreMessagesForCopyMetadata(const QString &component, bool hasMeta, bool update)
@@ -296,7 +296,7 @@ private slots:
ignoreMessagesForComponentSha(QStringList () << "A" << "B", false);
generateRepo(true, false, false);
- verifyComponentRepository("1.0.0", true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
verifyComponentMetaUpdatesXml();
}
@@ -306,7 +306,7 @@ private slots:
ignoreMessagesForUniteMeta(false);
generateRepo(true, true, false);
- verifyComponentRepository("1.0.0", true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
verifyUniteMetadata("1.0.0");
}
@@ -315,7 +315,7 @@ private slots:
ignoreMessagesForUniteMeta(false);
generateRepo(false, true, false);
- verifyComponentRepository("1.0.0", false);
+ verifyComponentRepository("1.0.0", "1.0.0", false);
verifyUniteMetadata("1.0.0");
}
@@ -324,7 +324,7 @@ private slots:
ignoreMessagesForComponentSha(QStringList () << "A" << "B", false);
generateRepo(true, false, false, QStringList () << "A");
- verifyComponentRepository("1.0.0", true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
verifyComponentMetaUpdatesXml();
verifyComponentShaUpdate(1);
}
@@ -334,7 +334,7 @@ private slots:
ignoreMessagesForComponentSha(QStringList () << "A" << "B", false);
generateRepo(true, false, false, QStringList () << "A" << "B");
- verifyComponentRepository("1.0.0", true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
verifyComponentMetaUpdatesXml();
verifyComponentShaUpdate(2);
}
@@ -344,7 +344,7 @@ private slots:
// Create 'base' repository which will be updated
ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);
generateRepo(true, false, false);
- verifyComponentRepository("1.0.0", true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
// Update the 'base' repository
initRepoUpdate();
@@ -355,7 +355,7 @@ private slots:
const QString &message = "Update component \"A\" in \"%1\" .";
QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(m_repoInfo.repositoryDir)));
generateRepo(true, false, true);
- verifyComponentRepository("2.0.0", true);
+ verifyComponentRepository("2.0.0", "1.0.0", true);
verifyComponentMetaUpdatesXml();
}
@@ -363,12 +363,12 @@ private slots:
{
ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);
generateRepo(true, false, false);
- verifyComponentRepository("1.0.0",true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
initRepoUpdate();
ignoreMessagesForUpdateComponents();
generateRepo(true, false, false);
- verifyComponentRepository("2.0.0", true);
+ verifyComponentRepository("2.0.0", "1.0.0", true);
verifyComponentMetaUpdatesXml();
}
@@ -377,13 +377,13 @@ private slots:
ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);
ignoreMessagesForUniteMeta(false);
generateRepo(true, true, false);
- verifyComponentRepository("1.0.0", true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
initRepoUpdate();
ignoreMessagesForUpdateComponents();
ignoreMessagesForUniteMeta(true);
generateRepo(true, true, false);
- verifyComponentRepository("2.0.0", true);
+ verifyComponentRepository("2.0.0", "1.0.0", true);
verifyUniteMetadata("2.0.0");
}
@@ -391,7 +391,7 @@ private slots:
{
ignoreMessagesForUniteMeta(false);
generateRepo(false, true, false);
- verifyComponentRepository("1.0.0", false);
+ verifyComponentRepository("1.0.0", "1.0.0", false);
initRepoUpdate();
ignoreMessageForCollectingPackages("2.0.0", "1.0.0");
@@ -400,7 +400,7 @@ private slots:
ignoreMessagesForCopyMetadata("B", false, true);
ignoreMessagesForUniteMeta(true);
generateRepo(false, true, false);
- verifyComponentRepository("2.0.0", false);
+ verifyComponentRepository("2.0.0", "1.0.0", false);
verifyUniteMetadata("2.0.0");
}
@@ -408,17 +408,47 @@ private slots:
{
ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);
generateRepo(true, false, false);
- verifyComponentRepository("1.0.0", true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
- initRepoUpdateFromRepository(":///repository_component");
- ignoreMessageForCollectingRepository("repository_component");
+ initRepoUpdateFromRepositories(QStringList() << ":///repository_component");
+ ignoreMessageForCollectingRepository(QStringList() << "repository_component");
+ QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"A\" - \"2.0.0\"");
QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"B\" - \"1.0.0\"");
ignoreMessagesForCopyRepository("B", "1.0.0", "repository_component");
ignoreMessagesForCopyRepository("A", "2.0.0", "repository_component");
ignoreMessagesForComponentSha(QStringList() << "A" << "B", true);
generateRepo(true, false, false);
- verifyComponentRepository("2.0.0", true);
+ verifyComponentRepository("2.0.0", "1.0.0", true);
+ verifyComponentMetaUpdatesXml();
+ }
+
+ void testUpdateComponentsFromMultipleRepositories()
+ {
+ ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);
+ generateRepo(true, false, false);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
+
+ initRepoUpdateFromRepositories(QStringList() << ":///test_package_versions/repository_1"
+ << ":///test_package_versions/repository_2" << ":///test_package_versions/repository_3");
+
+ ignoreMessageForCollectingRepository(QStringList()
+ << "repository_1" << "repository_2" << "repository_3");
+
+ QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"A\" - \"2.0.0\"");
+ QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"B\" - \"1.0.0\"");
+
+ QTest::ignoreMessage(QtDebugMsg, "- it provides an old version of the package \"A\" - \"1.0.0\" - ignored");
+ QTest::ignoreMessage(QtDebugMsg, "- it provides an old version of the package \"B\" - \"1.0.0\" - ignored");
+
+ QTest::ignoreMessage(QtDebugMsg, "- it provides an old version of the package \"A\" - \"1.0.0\" - ignored");
+ QTest::ignoreMessage(QtDebugMsg, "- it provides a new version of the package \"B\" - \"3.0.0\" - replaced");
+
+ ignoreMessagesForCopyRepository("B", "3.0.0", "test_package_versions/repository_3");
+ ignoreMessagesForCopyRepository("A", "2.0.0", "test_package_versions/repository_1");
+ ignoreMessagesForComponentSha(QStringList() << "A" << "B", true);
+ generateRepo(true, false, false);
+ verifyComponentRepository("2.0.0", "3.0.0", true);
verifyComponentMetaUpdatesXml();
}
@@ -427,10 +457,11 @@ private slots:
ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);
ignoreMessagesForUniteMeta(false);
generateRepo(true, true, false);
- verifyComponentRepository("1.0.0", true);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
- initRepoUpdateFromRepository(":///repository_componentAndUnite");
- ignoreMessageForCollectingRepository("repository_componentAndUnite");
+ initRepoUpdateFromRepositories(QStringList() << ":///repository_componentAndUnite");
+ ignoreMessageForCollectingRepository(QStringList() << "repository_componentAndUnite");
+ QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"A\" - \"2.0.0\"");
QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"C\" - \"1.0.0\"");
ignoreMessageForUpdateComponent();
ignoreMessagesForCopyRepository("A", "2.0.0", "repository_componentAndUnite");
@@ -439,7 +470,7 @@ private slots:
ignoreMessagesForComponentSha(QStringList() << "A" << "C", true);
generateRepo(true, true, true);
- verifyComponentRepository("2.0.0", true);
+ verifyComponentRepository("2.0.0", "1.0.0", true);
VerifyInstaller::verifyFileExistence(m_repoInfo.repositoryDir + "/C", QStringList() << "1.0.0content.7z" << "1.0.0content.7z.sha1" << "1.0.0meta.7z");
verifyUniteMetadata("2.0.0");
}
@@ -448,10 +479,11 @@ private slots:
{
ignoreMessagesForUniteMeta(false);
generateRepo(false, true, false);
- verifyComponentRepository("1.0.0", false);
+ verifyComponentRepository("1.0.0", "1.0.0", false);
- initRepoUpdateFromRepository(":///repository_unite");
- ignoreMessageForCollectingRepository("repository_unite");
+ initRepoUpdateFromRepositories(QStringList() << ":///repository_unite");
+ ignoreMessageForCollectingRepository(QStringList() << "repository_unite");
+ QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"A\" - \"2.0.0\"");
QTest::ignoreMessage(QtDebugMsg, "- it provides the package \"C\" - \"1.0.0\"");
ignoreMessageForUpdateComponent();
ignoreMessagesForCopyRepository("A", "2.0.0", "repository_unite");
@@ -459,7 +491,7 @@ private slots:
ignoreMessagesForUniteMeta(true);
generateRepo(false, true, true);
- verifyComponentRepository("2.0.0", false);
+ verifyComponentRepository("2.0.0", "1.0.0", false);
VerifyInstaller::verifyFileExistence(m_repoInfo.repositoryDir + "/C", QStringList() << "1.0.0content.7z" << "1.0.0content.7z.sha1");
verifyUniteMetadata("2.0.0");
}