diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2023-03-03 14:49:05 +0100 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2023-10-09 16:25:57 +0200 |
commit | 0fa4af060e420f5c6213d45cdde8fb313f214672 (patch) | |
tree | e557fac27f6374bca0b0ea6542a9af75711b99d3 /tests/auto/corelib/io | |
parent | 7d663d2e08fb71801f0f1f084a124e706722bf0f (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.cpp | 45 |
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" |