diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-03-23 12:31:31 +0200 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-04-12 12:24:30 +0300 |
commit | b06f5b541748afc30bff787858702ed575662382 (patch) | |
tree | 302fbd39905ef74e44a97edcc8019358eeb410e0 /tests | |
parent | 6c70f89e8e8e312a4a738c180742c0ab41b3ab95 (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')
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 Binary files differnew file mode 100644 index 000000000..46e2c9124 --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0content.7z 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 Binary files differnew file mode 100644 index 000000000..af0863696 --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_1/A/2.0.0meta.7z 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 Binary files differnew file mode 100644 index 000000000..46e2c9124 --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0content.7z 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 Binary files differnew file mode 100644 index 000000000..e5be1148e --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_1/B/1.0.0meta.7z 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 Binary files differnew file mode 100644 index 000000000..46e2c9124 --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0content.7z 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 Binary files differnew file mode 100644 index 000000000..c4da482bf --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_2/A/1.0.0meta.7z 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 Binary files differnew file mode 100644 index 000000000..46e2c9124 --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0content.7z 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 Binary files differnew file mode 100644 index 000000000..e5be1148e --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_2/B/1.0.0meta.7z 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 Binary files differnew file mode 100644 index 000000000..46e2c9124 --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0content.7z 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 Binary files differnew file mode 100644 index 000000000..3706e8dd8 --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_3/A/1.0.0meta.7z 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 Binary files differnew file mode 100644 index 000000000..46e2c9124 --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0content.7z 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 Binary files differnew file mode 100644 index 000000000..e5be1148e --- /dev/null +++ b/tests/auto/tools/repotest/test_package_versions/repository_3/B/3.0.0meta.7z 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"); } |