summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-11-30 16:31:36 +0200
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-12-03 14:36:27 +0200
commit5f0df8562132dfc77dbdb352712e6d42efc35122 (patch)
treee6ef1369c7406933a5a71029a1a399020717eec7 /tests/auto
parenteca91dcdca76fbde8050629631f06518109f9d02 (diff)
Libarchive: fix handling of glob pattern arguments when creating archive
Arguments with wildcards were not working if archivegen was called from somewhere else than shell, like from within a Python script. Task-number: QTIFW-2423 Change-Id: Icf6d6c3c45ad9050a03c1a3dd7c4d9f10d1f3be6 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp b/tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp
index a1f5a1994..280bb60d0 100644
--- a/tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp
+++ b/tests/auto/installer/libarchivearchive/tst_libarchivearchive.cpp
@@ -106,6 +106,38 @@ private slots:
QVERIFY(QFile(filename).remove());
}
+ void testCreateArchiveWithGlobPattern_data()
+ {
+ archiveSuffixesTestData();
+ }
+
+ void testCreateArchiveWithGlobPattern()
+ {
+ QFETCH(QString, suffix);
+
+ const QString baseDir(QDir::tempPath() + "/tst_libarchivearchive");
+ QVERIFY(QDir().mkpath(baseDir));
+
+ const QString path1 = tempSourceFile(
+ "Source File 1.",
+ baseDir + "/file.XXXXXX"
+ );
+ const QString path2 = tempSourceFile(
+ "Source File 2.",
+ baseDir + "/file.XXXXXX"
+ );
+
+ const QString filename = generateTemporaryFileName() + suffix;
+ LibArchiveArchive target(filename);
+ QVERIFY(target.open(QIODevice::ReadWrite));
+ QVERIFY(target.create(QStringList() << baseDir + "/*"));
+ QCOMPARE(target.list().count(), 2);
+ target.close();
+
+ QVERIFY(QFile(filename).remove());
+ QVERIFY(QDir(baseDir).removeRecursively());
+ }
+
void testCreateArchiveWithSpaces_data()
{
archiveSuffixesTestData();