summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-10-26 19:19:47 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-12-09 13:44:24 +0200
commit8487987c0c32c06fb6dfc225a1ba347894215fb1 (patch)
tree91221cec6168b3f574ca2fe70d869e1c97661027 /tests
parent5f0df8562132dfc77dbdb352712e6d42efc35122 (diff)
Enable handling 7z archives with libarchive
Make libarchive the default handler for 7z archives if the IFW tools were built with the 'libarchive' configuration feature. The LZMA SDK library is still built and can be used instead if the config feature is omitted. Also modify tests. Task-number: QTIFW-2375 Change-Id: I1091d5fa140cbd783cddecc595f35c6562639b07 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/installer/archivefactory/tst_archivefactory.cpp8
-rw-r--r--tests/auto/installer/clientserver/tst_clientserver.cpp1
-rw-r--r--tests/auto/installer/cliinterface/data/filequeryrepository/A/1.0.2-1meta.7zbin907 -> 945 bytes
-rw-r--r--tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp1
-rw-r--r--tests/auto/installer/libarchivearchive/data.qrc1
-rw-r--r--tests/auto/installer/libarchivearchive/data/valid.7zbin0 -> 950 bytes
-rw-r--r--tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp2
-rw-r--r--tests/auto/installer/messageboxhandler/data/invalidoperation/A/1.0.2-1meta.7zbin841 -> 875 bytes
-rw-r--r--tests/auto/tools/repotest/repotest.pro3
-rw-r--r--tests/auto/tools/repotest/settings.qrc61
-rw-r--r--tests/auto/tools/repotest/tst_repotest.cpp39
11 files changed, 25 insertions, 91 deletions
diff --git a/tests/auto/installer/archivefactory/tst_archivefactory.cpp b/tests/auto/installer/archivefactory/tst_archivefactory.cpp
index 20fd4ab70..6320835a7 100644
--- a/tests/auto/installer/archivefactory/tst_archivefactory.cpp
+++ b/tests/auto/installer/archivefactory/tst_archivefactory.cpp
@@ -87,11 +87,13 @@ private slots:
QTest::addColumn<QString>("handler");
QTest::addColumn<QString>("filename");
QTest::addColumn<QStringList>("types");
- QTest::newRow("Lib7z")
- << "Lib7z" << "myfile.7z" << (QStringList() << "7z");
#ifdef IFW_LIBARCHIVE
QTest::newRow("LibArchive")
- << "LibArchive" << "myfile.zip" << (QStringList() << "tar.gz" << "tar.bz2" << "tar.xz" << "zip");
+ << "LibArchive" << "myfile.zip"
+ << (QStringList() << "tar.gz" << "tar.bz2" << "tar.xz" << "zip" << "7z");
+#else
+ QTest::newRow("Lib7z")
+ << "Lib7z" << "myfile.7z" << (QStringList() << "7z");
#endif
}
diff --git a/tests/auto/installer/clientserver/tst_clientserver.cpp b/tests/auto/installer/clientserver/tst_clientserver.cpp
index c0a2b1c3f..ebbe3af56 100644
--- a/tests/auto/installer/clientserver/tst_clientserver.cpp
+++ b/tests/auto/installer/clientserver/tst_clientserver.cpp
@@ -527,6 +527,7 @@ private slots:
QTest::newRow("gzip compressed tar archive") << ".tar.gz";
QTest::newRow("bzip2 compressed tar archive") << ".tar.bz2";
QTest::newRow("xz compressed tar archive") << ".tar.xz";
+ QTest::newRow("7zip archive") << ".7z";
}
void testArchiveWrapper()
diff --git a/tests/auto/installer/cliinterface/data/filequeryrepository/A/1.0.2-1meta.7z b/tests/auto/installer/cliinterface/data/filequeryrepository/A/1.0.2-1meta.7z
index a006c5c96..0b0b6ade6 100644
--- a/tests/auto/installer/cliinterface/data/filequeryrepository/A/1.0.2-1meta.7z
+++ b/tests/auto/installer/cliinterface/data/filequeryrepository/A/1.0.2-1meta.7z
Binary files differ
diff --git a/tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp b/tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp
index 14afc6902..782f3b57e 100644
--- a/tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp
+++ b/tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp
@@ -84,7 +84,6 @@ private slots:
QVERIFY(op.undoOperation());
QCOMPARE(UpdateOperation::Error(op.error()), UpdateOperation::UserDefinedError);
- QCOMPARE(op.errorString(), QString("Cannot open archive \":///data/invalid.7z\" for reading: "));
}
void testExtractArchiveFromXML()
diff --git a/tests/auto/installer/libarchivearchive/data.qrc b/tests/auto/installer/libarchivearchive/data.qrc
index 83f15d241..dd9eb9090 100644
--- a/tests/auto/installer/libarchivearchive/data.qrc
+++ b/tests/auto/installer/libarchivearchive/data.qrc
@@ -4,5 +4,6 @@
<file>data/valid.tar.gz</file>
<file>data/valid.tar.bz2</file>
<file>data/valid.tar.xz</file>
+ <file>data/valid.7z</file>
</qresource>
</RCC>
diff --git a/tests/auto/installer/libarchivearchive/data/valid.7z b/tests/auto/installer/libarchivearchive/data/valid.7z
new file mode 100644
index 000000000..e583bdf99
--- /dev/null
+++ b/tests/auto/installer/libarchivearchive/data/valid.7z
Binary files differ
diff --git a/tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp b/tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp
index 280bb60d0..6b6eccbe4 100644
--- a/tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp
+++ b/tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp
@@ -245,6 +245,7 @@ private:
QTest::newRow("gzip compressed tar archive") << ":///data/valid.tar.gz";
QTest::newRow("bzip2 compressed tar archive") << ":///data/valid.tar.bz2";
QTest::newRow("xz compressed tar archive") << ":///data/valid.tar.xz";
+ QTest::newRow("7zip archive") << ":///data/valid.7z";
}
void archiveSuffixesTestData()
@@ -254,6 +255,7 @@ private:
QTest::newRow("gzip compressed tar archive") << ".tar.gz";
QTest::newRow("bzip2 compressed tar archive") << ".tar.bz2";
QTest::newRow("xz compressed tar archive") << ".tar.xz";
+ QTest::newRow("7z archive") << ".7z";
}
QString tempSourceFile(const QByteArray &data, const QString &templateName = QString())
diff --git a/tests/auto/installer/messageboxhandler/data/invalidoperation/A/1.0.2-1meta.7z b/tests/auto/installer/messageboxhandler/data/invalidoperation/A/1.0.2-1meta.7z
index 3653317c6..f51ed49fa 100644
--- a/tests/auto/installer/messageboxhandler/data/invalidoperation/A/1.0.2-1meta.7z
+++ b/tests/auto/installer/messageboxhandler/data/invalidoperation/A/1.0.2-1meta.7z
Binary files differ
diff --git a/tests/auto/tools/repotest/repotest.pro b/tests/auto/tools/repotest/repotest.pro
index 930abafd6..c0ff8caa6 100644
--- a/tests/auto/tools/repotest/repotest.pro
+++ b/tests/auto/tools/repotest/repotest.pro
@@ -4,6 +4,3 @@ QT -= gui
SOURCES += tst_repotest.cpp
-RESOURCES += \
- settings.qrc
-
diff --git a/tests/auto/tools/repotest/settings.qrc b/tests/auto/tools/repotest/settings.qrc
deleted file mode 100644
index 5c0d0055a..000000000
--- a/tests/auto/tools/repotest/settings.qrc
+++ /dev/null
@@ -1,61 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>packages/A/data/A.txt</file>
- <file>packages/A/meta/package.xml</file>
- <file>packages/A/meta/script1.0.0.qs</file>
- <file>packages/B/data/B.txt</file>
- <file>packages/B/meta/package.xml</file>
- <file>packages_update/A/data/A_update.txt</file>
- <file>packages_update/A/meta/package.xml</file>
- <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>
- <file>repository_component/B/1.0.0content.7z</file>
- <file>repository_component/B/1.0.0content.7z.sha1</file>
- <file>repository_component/B/1.0.0meta.7z</file>
- <file>repository_component/Updates.xml</file>
- <file>repository_componentAndUnite/A/2.0.0content.7z</file>
- <file>repository_componentAndUnite/A/2.0.0content.7z.sha1</file>
- <file>repository_componentAndUnite/A/2.0.0meta.7z</file>
- <file>repository_componentAndUnite/C/1.0.0content.7z</file>
- <file>repository_componentAndUnite/C/1.0.0content.7z.sha1</file>
- <file>repository_componentAndUnite/C/1.0.0meta.7z</file>
- <file>repository_componentAndUnite/2020-11-10-0816_meta.7z</file>
- <file>repository_componentAndUnite/Updates.xml</file>
- <file>repository_unite/A/2.0.0content.7z</file>
- <file>repository_unite/A/2.0.0content.7z.sha1</file>
- <file>repository_unite/C/1.0.0content.7z</file>
- <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/tst_repotest.cpp b/tests/auto/tools/repotest/tst_repotest.cpp
index 0868ae57e..0fb6f9cd3 100644
--- a/tests/auto/tools/repotest/tst_repotest.cpp
+++ b/tests/auto/tools/repotest/tst_repotest.cpp
@@ -76,7 +76,7 @@ private:
void initRepoUpdate()
{
clearData();
- m_repoInfo.packages << ":///packages_update";
+ m_repoInfo.packages << "packages_update";
}
void initRepoUpdateFromRepositories(const QStringList &repositories)
@@ -139,18 +139,13 @@ private:
"MetadataName");
}
- void ignoreMessagesForComponentHash(const QStringList &components, bool update)
+ void ignoreMessagesForComponentHash(const QStringList &components)
{
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: (\"%1/%2/data/%2_update.txt\")";
- else
- message = "Compressing files found in data directory: (\"%1/%2/data/%2.txt\")";
- QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(packageDir, component)));
+ QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Compressing files found in data directory: *"));
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Hash is stored in *"));
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Creating hash of archive *"));
QTest::ignoreMessage(QtDebugMsg, QRegularExpression("Generated sha1 hash: *"));
@@ -164,7 +159,7 @@ private:
QString message = "Copying component data for \"%1\"";
QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(component)));
foreach (const QString &fileName, contentFiles) {
- message = "Copying file from \":///%5/%1/%2%4\" to \"%3/%1/%2%4\"";
+ message = "Copying file from \"%5/%1/%2%4\" to \"%3/%1/%2%4\"";
QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(component).arg(version)
.arg(m_repoInfo.repositoryDir).arg(fileName).arg(repository)));
}
@@ -251,7 +246,7 @@ private:
{
ignoreMessageForCollectingPackages("2.0.0", "1.0.0");
ignoreMessagesForComponentSha(QStringList() << "A" << "B", false);
- ignoreMessagesForComponentHash(QStringList() << "A" << "B", true);
+ ignoreMessagesForComponentHash(QStringList() << "A" << "B");
ignoreMessagesForCopyMetadata("A", true, true);
ignoreMessagesForCopyMetadata("B", false, true);
}
@@ -274,8 +269,6 @@ private:
QVERIFY(dom.setContent(&file));
file.close();
QCOMPARE(dom.elementsByTagName("ContentSha1").count(), shaUpdateComponents);
- VerifyInstaller::verifyFileContent(updatesXmlFile,
- "<ContentSha1>059e5ed8cd3a1fbca08cccfa4075265192603e3f</ContentSha1>");
}
private slots:
@@ -286,9 +279,9 @@ private slots:
m_repoInfo.repositoryDir = QInstallerTools::makePathAbsolute(QInstaller::generateTemporaryFileName());
m_tempDirDeleter.add(m_repoInfo.repositoryDir);
- m_repoInfo.packages << ":///packages";
+ m_repoInfo.packages << "packages";
- ignoreMessagesForComponentHash(QStringList() << "A" << "B", false);
+ ignoreMessagesForComponentHash(QStringList() << "A" << "B");
ignoreMessagesForCopyMetadata("A", true, false); //Only A has metadata
ignoreMessagesForCopyMetadata("B", false, false);
}
@@ -357,7 +350,7 @@ private slots:
initRepoUpdate();
ignoreMessageForCollectingPackages("2.0.0", "1.0.0");
ignoreMessagesForComponentSha(QStringList() << "A", false); //Only A has update
- ignoreMessagesForComponentHash(QStringList() << "A", true);
+ ignoreMessagesForComponentHash(QStringList() << "A");
ignoreMessagesForCopyMetadata("A", true, true);
const QString &message = "Update component \"A\" in \"%1\" .";
QTest::ignoreMessage(QtDebugMsg, qPrintable(message.arg(m_repoInfo.repositoryDir)));
@@ -387,13 +380,13 @@ private slots:
verifyComponentRepository("1.0.0", "1.0.0", true);
clearData();
- m_repoInfo.packages << ":///packages_new";
+ 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);
+ ignoreMessagesForComponentHash(QStringList() << "C");
}
generateRepo(true, true, false);
verifyComponentRepository("1.0.0", "1.0.0", true);
@@ -425,7 +418,7 @@ private slots:
initRepoUpdate();
ignoreMessageForCollectingPackages("2.0.0", "1.0.0");
- ignoreMessagesForComponentHash(QStringList() << "A" << "B", true);
+ ignoreMessagesForComponentHash(QStringList() << "A" << "B");
ignoreMessagesForCopyMetadata("A", true, true);
ignoreMessagesForCopyMetadata("B", false, true);
ignoreMessagesForUniteMeta(true);
@@ -440,7 +433,7 @@ private slots:
generateRepo(true, false, false);
verifyComponentRepository("1.0.0", "1.0.0", true);
- initRepoUpdateFromRepositories(QStringList() << ":///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\"");
@@ -459,8 +452,8 @@ private slots:
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");
+ 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");
@@ -489,7 +482,7 @@ private slots:
generateRepo(true, true, false);
verifyComponentRepository("1.0.0", "1.0.0", true);
- initRepoUpdateFromRepositories(QStringList() << ":///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\"");
@@ -511,7 +504,7 @@ private slots:
generateRepo(false, true, false);
verifyComponentRepository("1.0.0", "1.0.0", false);
- initRepoUpdateFromRepositories(QStringList() << ":///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\"");