summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-09-10 15:38:17 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-09-10 15:38:17 +0300
commit41865907dae243fc5508ec4df35a98317cfb817c (patch)
tree4b2bf862319573c9ac8a3fa1603e06f7cda3ae7b /tests/auto
parentbfa8427531cf871b7423c252f522b7bfe75c7edd (diff)
parent08e82c7f25401770fcd293d0bae1c08db30abf7d (diff)
Merge remote-tracking branch 'origin/4.1' into master
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/tools/repotest/packages_new/C/data/C.txt2
-rw-r--r--tests/auto/tools/repotest/packages_new/C/meta/package.xml8
-rw-r--r--tests/auto/tools/repotest/settings.qrc2
-rw-r--r--tests/auto/tools/repotest/tst_repotest.cpp72
4 files changed, 62 insertions, 22 deletions
diff --git a/tests/auto/tools/repotest/packages_new/C/data/C.txt b/tests/auto/tools/repotest/packages_new/C/data/C.txt
new file mode 100644
index 000000000..b45c73606
--- /dev/null
+++ b/tests/auto/tools/repotest/packages_new/C/data/C.txt
@@ -0,0 +1,2 @@
+Example content for package C.
+
diff --git a/tests/auto/tools/repotest/packages_new/C/meta/package.xml b/tests/auto/tools/repotest/packages_new/C/meta/package.xml
new file mode 100644
index 000000000..676f088be
--- /dev/null
+++ b/tests/auto/tools/repotest/packages_new/C/meta/package.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Package>
+ <DisplayName>C</DisplayName>
+ <Description>Example component C</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2020-01-01</ReleaseDate>
+ <Default>true</Default>
+</Package>
diff --git a/tests/auto/tools/repotest/settings.qrc b/tests/auto/tools/repotest/settings.qrc
index a0b5743fe..5c0d0055a 100644
--- a/tests/auto/tools/repotest/settings.qrc
+++ b/tests/auto/tools/repotest/settings.qrc
@@ -10,6 +10,8 @@
<file>packages_update/A/meta/script2.0.0.qs</file>
<file>packages_update/B/data/B_update.txt</file>
<file>packages_update/B/meta/package.xml</file>
+ <file>packages_new/C/data/C.txt</file>
+ <file>packages_new/C/meta/package.xml</file>
<file>repository_component/A/2.0.0content.7z</file>
<file>repository_component/A/2.0.0content.7z.sha1</file>
<file>repository_component/A/2.0.0meta.7z</file>
diff --git a/tests/auto/tools/repotest/tst_repotest.cpp b/tests/auto/tools/repotest/tst_repotest.cpp
index 02594f400..637ca2a97 100644
--- a/tests/auto/tools/repotest/tst_repotest.cpp
+++ b/tests/auto/tools/repotest/tst_repotest.cpp
@@ -55,9 +55,6 @@ private:
VerifyInstaller::verifyFileExistence(m_repoInfo.repositoryDir + "/B", QStringList() << "1.0.0content.7z"
<< "1.0.0content.7z.sha1");
}
- } else {
- QDir dir(m_repoInfo.repositoryDir + "/B");
- QVERIFY(!dir.exists());
}
QTemporaryDir tmp;
tmp.setAutoRemove(false);
@@ -142,14 +139,16 @@ private:
void ignoreMessagesForComponentHash(const QStringList &components, bool update)
{
+ QString packageDir = m_repoInfo.packages.first();
+ packageDir.remove("//"); // e.g. :///packages -> :/packages
foreach (const QString component, components) {
QString message = "Copying component data for \"%1\"";
QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(component)));
if (update)
- message = "Compressing files found in data directory: (\":/packages_update/%1/data/%1_update.txt\")";
+ message = "Compressing files found in data directory: (\"%1/%2/data/%2_update.txt\")";
else
- message = "Compressing files found in data directory: (\":/packages/%1/data/%1.txt\")";
- QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(component)));
+ message = "Compressing files found in data directory: (\"%1/%2/data/%2.txt\")";
+ QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(packageDir, component)));
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Hash is stored in *"));
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Creating hash of archive *"));
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Generated sha1 hash: *"));
@@ -181,19 +180,15 @@ private:
void ignoreMessagesForCopyMetadata(const QString &component, bool hasMeta, bool update)
{
- QString message;
- if (update)
- message = "Copy meta data for package \"%1\" using \":///packages_update/%1/meta/package.xml\"";
- else
- message = "Copy meta data for package \"%1\" using \":///packages/%1/meta/package.xml\"";
- QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(component)));
+ QString message = "Copy meta data for package \"%2\" using \"%1/%2/meta/package.xml\"";
+ QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(m_repoInfo.packages.first(), component)));
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("calculate size of directory *"));
if (hasMeta) {
if (update)
- message = "Copying associated \"script\" file \":///packages_update/%1/meta/script2.0.0.qs\"";
+ message = "Copying associated \"script\" file \"%1/%2/meta/script2.0.0.qs\"";
else
- message = "Copying associated \"script\" file \":///packages/%1/meta/script1.0.0.qs\"";
- QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(component)));
+ message = "Copying associated \"script\" file \"%1/%2/meta/script1.0.0.qs\"";
+ QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(m_repoInfo.packages.first(), component)));
QTest::ignoreMessage(QtDebugMsg, "done.");
}
}
@@ -218,16 +213,26 @@ private:
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Updating the metadata node with name *"));
}
- void ignoreMessageForCollectingPackages(const QString &versionA, const QString &versionB)
+ void ignoreMessageForCollectingPackages(const QString &versionA = QString(),
+ const QString &versionB = QString(), const QString &versionC = QString())
{
QTest::ignoreMessage(QtDebugMsg, "Collecting information about available repository packages...");
QTest::ignoreMessage(QtDebugMsg, "Collecting information about available packages...");
- QTest::ignoreMessage(QtDebugMsg, "Found subdirectory \"A\"");
- QString message = "- it provides the package \"A\" - \"%1\"";
- QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(versionA)));
- QTest::ignoreMessage(QtDebugMsg, "Found subdirectory \"B\"");
- message = "- it provides the package \"B\" - \"%1\"";
- QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(versionB)));
+ if (!versionA.isEmpty()) {
+ QTest::ignoreMessage(QtDebugMsg, "Found subdirectory \"A\"");
+ const QString message = "- it provides the package \"A\" - \"%1\"";
+ QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(versionA)));
+ }
+ if (!versionB.isEmpty()) {
+ QTest::ignoreMessage(QtDebugMsg, "Found subdirectory \"B\"");
+ const QString message = "- it provides the package \"B\" - \"%1\"";
+ QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(versionB)));
+ }
+ if (!versionC.isEmpty()) {
+ QTest::ignoreMessage(QtDebugMsg, "Found subdirectory \"C\"");
+ const QString message = "- it provides the package \"C\" - \"%1\"";
+ QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(versionC)));
+ }
}
void ignoreMessageForCollectingPackagesFromRepository(const QString &versionA, const QString &versionB)
@@ -372,6 +377,29 @@ private slots:
verifyComponentMetaUpdatesXml();
}
+ void testUpdateComponentsFromPartialPackageDir()
+ {
+ ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);
+ ignoreMessagesForUniteMeta(false);
+ generateRepo(true, true, false);
+ verifyComponentRepository("1.0.0", "1.0.0", true);
+
+ clearData();
+ m_repoInfo.packages << ":///packages_new";
+ { // ignore messages
+ ignoreMessagesForUniteMeta(false);
+ ignoreMessageForCollectingPackages(QString(), QString(), "1.0.0");
+ ignoreMessagesForComponentSha(QStringList() << "C", true);
+ ignoreMessagesForCopyMetadata("C", false, false);
+ ignoreMessagesForComponentHash(QStringList() << "C", false);
+ }
+ generateRepo(true, true, false);
+ verifyComponentRepository("1.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("1.0.0");
+ }
+
void testUpdateComponentsWithUniteMetadata()
{
ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);