diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-10-26 19:19:47 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-12-09 13:44:24 +0200 |
commit | 8487987c0c32c06fb6dfc225a1ba347894215fb1 (patch) | |
tree | 91221cec6168b3f574ca2fe70d869e1c97661027 /tests | |
parent | 5f0df8562132dfc77dbdb352712e6d42efc35122 (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.cpp | 8 | ||||
-rw-r--r-- | tests/auto/installer/clientserver/tst_clientserver.cpp | 1 | ||||
-rw-r--r-- | tests/auto/installer/cliinterface/data/filequeryrepository/A/1.0.2-1meta.7z | bin | 907 -> 945 bytes | |||
-rw-r--r-- | tests/auto/installer/extractarchiveoperationtest/tst_extractarchiveoperationtest.cpp | 1 | ||||
-rw-r--r-- | tests/auto/installer/libarchivearchive/data.qrc | 1 | ||||
-rw-r--r-- | tests/auto/installer/libarchivearchive/data/valid.7z | bin | 0 -> 950 bytes | |||
-rw-r--r-- | tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp | 2 | ||||
-rw-r--r-- | tests/auto/installer/messageboxhandler/data/invalidoperation/A/1.0.2-1meta.7z | bin | 841 -> 875 bytes | |||
-rw-r--r-- | tests/auto/tools/repotest/repotest.pro | 3 | ||||
-rw-r--r-- | tests/auto/tools/repotest/settings.qrc | 61 | ||||
-rw-r--r-- | tests/auto/tools/repotest/tst_repotest.cpp | 39 |
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 Binary files differindex 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 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 Binary files differnew file mode 100644 index 000000000..e583bdf99 --- /dev/null +++ b/tests/auto/installer/libarchivearchive/data/valid.7z 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 Binary files differindex 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 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\""); |