diff options
author | Paul Olav Tvete <paul.tvete@theqtcompany.com> | 2015-06-09 13:59:07 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@theqtcompany.com> | 2015-06-09 13:59:07 +0200 |
commit | 0963be63ce741ef6c7585358c3f3b1cb806b66e8 (patch) | |
tree | 6f4964c196b8a52cb15e9efc0388b6a549574460 /tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp | |
parent | 9e6a1351823b3ee3d7e380248f6ef42ff383b014 (diff) | |
parent | eacfbbf64ef90dad8c5cb6b2c812ad64c1100779 (diff) |
Merge remote-tracking branch 'qt/dev' into dev-highdpi
Conflicts:
src/gui/kernel/qsimpledrag.cpp
src/gui/kernel/qwindowsysteminterface.cpp
src/gui/kernel/qwindowsysteminterface_p.h
src/plugins/platforms/xcb/qxcbwindow.cpp
Change-Id: Icd887552ade61d6a2b2527383970f7145aa00faf
Diffstat (limited to 'tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp')
-rw-r--r-- | tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp index 044fdbdee5..f9bca77ed3 100644 --- a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp +++ b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp @@ -48,6 +48,7 @@ private slots: void sizeWhenReserved(); void free(); void reserveAndRead(); + void reserveFrontAndRead(); void chop(); void ungetChar(); void indexOf(); @@ -219,6 +220,28 @@ void tst_QRingBuffer::reserveAndRead() QVERIFY(ringBuffer.size() == 0); } +void tst_QRingBuffer::reserveFrontAndRead() +{ + QRingBuffer ringBuffer; + // fill buffer with an arithmetic progression + for (int i = 1; i < 256; ++i) { + QByteArray ba(i, char(i)); + char *ringPos = ringBuffer.reserveFront(i); + QVERIFY(ringPos); + memcpy(ringPos, ba.constData(), i); + } + + // readback and check stored data + for (int i = 255; i > 0; --i) { + QByteArray ba; + ba.resize(i); + qint64 thisRead = ringBuffer.read(ba.data(), i); + QCOMPARE(thisRead, qint64(i)); + QVERIFY(ba.count(char(i)) == i); + } + QVERIFY(ringBuffer.size() == 0); +} + void tst_QRingBuffer::chop() { QRingBuffer ringBuffer; |