summaryrefslogtreecommitdiffstats
path: root/tests/auto/qfile
diff options
context:
space:
mode:
authorJoão Abecasis <joao@trolltech.com>2010-01-07 14:54:06 (GMT)
committerJoão Abecasis <joao@trolltech.com>2010-01-07 15:33:26 (GMT)
commit183be5348e53ef1df9a6e1eb82f10f24ce612f40 (patch)
treebdd08361c176119288bbf0ce9c1c22affb16da1b /tests/auto/qfile
parent6bf1674f1e51fd8b08783035cda7493ecd63b443 (diff)
downloadQt-183be5348e53ef1df9a6e1eb82f10f24ce612f40.zip
Qt-183be5348e53ef1df9a6e1eb82f10f24ce612f40.tar.gz
Qt-183be5348e53ef1df9a6e1eb82f10f24ce612f40.tar.bz2
Fix bugs evidenced by change to keep flush errors on QFile::close
When closing a file, the contents of the write buffer should be emptied even in the case where flush fails, so it doesn't leak to subsequent files opened through the same instance. This is inline with what would happen with native close on a buffered device. Also changed the resource file engine to succeed on flush. Since all writes fail there, logically it's write buffer is empty and flush should succeed. This keeps auto-tests happy :-) tst_QFile::fullDisk auto-test extended to ensure re-opening QFile does not keep the write buffer alive. Reviewed-by: Thiago Macieira
Diffstat (limited to 'tests/auto/qfile')
-rw-r--r--tests/auto/qfile/tst_qfile.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp
index 453434d..f407b12 100644
--- a/tests/auto/qfile/tst_qfile.cpp
+++ b/tests/auto/qfile/tst_qfile.cpp
@@ -2119,15 +2119,17 @@ void tst_QFile::fullDisk()
file.write(&c, 0);
QVERIFY(!file.flush());
QCOMPARE(file.error(), QFile::ResourceError);
- file.write(&c, 1);
+ QCOMPARE(file.write(&c, 1), qint64(1));
QVERIFY(!file.flush());
QCOMPARE(file.error(), QFile::ResourceError);
file.close();
QVERIFY(!file.isOpen());
QCOMPARE(file.error(), QFile::ResourceError);
+
file.open(QIODevice::WriteOnly);
QCOMPARE(file.error(), QFile::NoError);
+ QVERIFY(file.flush()); // Shouldn't inherit write buffer
file.close();
QCOMPARE(file.error(), QFile::NoError);