tests/auto/qiodevice/tst_qiodevice.cpp
changeset 33 3e2da88830cd
parent 18 2f34d5167611
--- a/tests/auto/qiodevice/tst_qiodevice.cpp	Tue Jul 06 15:10:48 2010 +0300
+++ b/tests/auto/qiodevice/tst_qiodevice.cpp	Wed Aug 18 10:37:55 2010 +0300
@@ -72,6 +72,7 @@
     void read_QByteArray();
     void unget();
     void peek();
+    void peekAndRead();
     void getch();
     void putch();
 
@@ -354,6 +355,31 @@
     QFile::remove("peektestfile");
 }
 
+void tst_QIODevice::peekAndRead()
+{
+    QByteArray originalData;
+    for (int i=0;i<1000;i++)
+        originalData += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+    QBuffer buffer;
+    QFile::remove("peektestfile");
+    QFile file("peektestfile");
+
+    for (int i = 0; i < 2; ++i) {
+        QByteArray readData;
+        QIODevice *device = i ? (QIODevice *)&file : (QIODevice *)&buffer;
+        device->open(QBuffer::ReadWrite);
+        device->write(originalData);
+        device->seek(0);
+        while (!device->atEnd()) {
+            char peekIn[26];
+            device->peek(peekIn, 26);
+            readData += device->read(26);
+        }
+        QCOMPARE(readData, originalData);
+    }
+    QFile::remove("peektestfile");
+}
+
 void tst_QIODevice::getch()
 {
 #ifdef QT3_SUPPORT