From 5f0df8562132dfc77dbdb352712e6d42efc35122 Mon Sep 17 00:00:00 2001 From: Arttu Tarkiainen Date: Tue, 30 Nov 2021 16:31:36 +0200 Subject: 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 --- .../libarchivearchive/tst_libarchivearchive.cpp | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'tests') 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(); -- cgit v1.2.3