summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2023-03-03 14:49:05 +0100
committerMårten Nordheim <marten.nordheim@qt.io>2023-10-09 16:25:57 +0200
commit0fa4af060e420f5c6213d45cdde8fb313f214672 (patch)
treee557fac27f6374bca0b0ea6542a9af75711b99d3 /tests/auto/corelib/io
parent7d663d2e08fb71801f0f1f084a124e706722bf0f (diff)
QTemporaryFile: Add support for std::filesystem::path
Since it hides QFile's overloads this was not supported for QTemporaryFile. [ChangeLog][QtCore][QTemporaryFile] Added support for passing std::filesystem::path to rename and createNativeFile. Change-Id: I909ff1d5b9c586824c9901d7dad278dfad09ffc3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r--tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
index f8e3a9d744..3d25027503 100644
--- a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
+++ b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
@@ -75,6 +75,7 @@ private slots:
void QTBUG_4796_data();
void QTBUG_4796();
void guaranteeUnique();
+ void stdfilesystem();
private:
QTemporaryDir m_temporaryDir;
QString m_previousCurrent;
@@ -1036,5 +1037,49 @@ void tst_QTemporaryFile::guaranteeUnique()
QVERIFY(dir.rmdir(takenFileName));
}
+void tst_QTemporaryFile::stdfilesystem()
+{
+#if !QT_CONFIG(cxx17_filesystem)
+ QSKIP("std::filesystem not available");
+#else
+ // ctor
+ {
+ std::filesystem::path testFile("testFile1.XXXXXX");
+ QTemporaryFile file(testFile);
+ QCOMPARE(file.fileTemplate(), QtPrivate::fromFilesystemPath(testFile));
+ }
+ // rename
+ {
+ QTemporaryFile file("testFile1.XXXXXX");
+ QVERIFY(file.open());
+ QByteArray payload = "abc123 I am a string";
+ file.write(payload);
+ QVERIFY(file.rename(std::filesystem::path("./test")));
+ file.close();
+
+ QFile f(u"./test"_s);
+ QVERIFY(f.exists());
+ QVERIFY(f.open(QFile::ReadOnly));
+ QCOMPARE(f.readAll(), payload);
+ }
+ // createNativeFile
+ {
+ std::filesystem::path resource(":/resources/test.txt");
+ std::unique_ptr<QTemporaryFile> tmp(QTemporaryFile::createNativeFile(resource));
+ QVERIFY(tmp);
+ QFile file(resource);
+ QVERIFY(file.open(QFile::ReadOnly));
+ QCOMPARE(tmp->readAll(), file.readAll());
+ }
+ // setFileTemplate
+ {
+ QTemporaryFile file;
+ std::filesystem::path testFile("testFile1.XXXXXX");
+ file.setFileTemplate(testFile);
+ QCOMPARE(file.fileTemplate(), QtPrivate::fromFilesystemPath(testFile));
+ }
+#endif
+}
+
QTEST_MAIN(tst_QTemporaryFile)
#include "tst_qtemporaryfile.moc"