summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp')
-rw-r--r--tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp72
1 files changed, 45 insertions, 27 deletions
diff --git a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp
index 77fc6ad6ae..7bd732379d 100644
--- a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp
+++ b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp
@@ -1,31 +1,26 @@
/****************************************************************************
**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
**
-** $QT_BEGIN_LICENSE:LGPL21$
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
@@ -34,16 +29,18 @@
#include <QtTest/QtTest>
#include <private/qringbuffer_p.h>
+#include <qvector.h>
class tst_QRingBuffer : public QObject
{
Q_OBJECT
private slots:
+ void constructing();
+ void usingInVector();
void readPointerAtPositionWriteRead();
void readPointerAtPositionEmptyRead();
void readPointerAtPositionWithHead();
void readPointerAtPositionReadTooMuch();
- void sizeWhenEmpty();
void sizeWhenReservedAndChopped();
void sizeWhenReserved();
void free();
@@ -57,6 +54,33 @@ private slots:
void readLine();
};
+void tst_QRingBuffer::constructing()
+{
+ QRingBuffer ringBuffer;
+
+ QCOMPARE(ringBuffer.size(), Q_INT64_C(0));
+ QVERIFY(ringBuffer.isEmpty());
+ QCOMPARE(ringBuffer.nextDataBlockSize(), Q_INT64_C(0));
+ QVERIFY(ringBuffer.readPointer() == Q_NULLPTR);
+ QCOMPARE(ringBuffer.skip(5), Q_INT64_C(0));
+ QCOMPARE(ringBuffer.read(), QByteArray());
+ QCOMPARE(ringBuffer.getChar(), -1);
+ QVERIFY(!ringBuffer.canReadLine());
+
+ char buf[5];
+ QCOMPARE(ringBuffer.peek(buf, sizeof(buf)), Q_INT64_C(0));
+}
+
+void tst_QRingBuffer::usingInVector()
+{
+ QRingBuffer ringBuffer;
+ QVector<QRingBuffer> buffers;
+
+ ringBuffer.reserve(5);
+ buffers.append(ringBuffer);
+ QCOMPARE(buffers[0].size(), Q_INT64_C(5));
+}
+
void tst_QRingBuffer::sizeWhenReserved()
{
QRingBuffer ringBuffer;
@@ -74,13 +98,6 @@ void tst_QRingBuffer::sizeWhenReservedAndChopped()
QCOMPARE(ringBuffer.size(), Q_INT64_C(0));
}
-void tst_QRingBuffer::sizeWhenEmpty()
-{
- QRingBuffer ringBuffer;
-
- QCOMPARE(ringBuffer.size(), Q_INT64_C(0));
-}
-
void tst_QRingBuffer::readPointerAtPositionReadTooMuch()
{
QRingBuffer ringBuffer;
@@ -140,7 +157,7 @@ void tst_QRingBuffer::readPointerAtPositionWriteRead()
inData.putChar(0x23);
inData.write("Qt rocks!");
for (int i = 0; i < 5000; i++)
- inData.write(QString("Number %1").arg(i).toUtf8());
+ inData.write("Number " + QByteArray::number(i));
inData.reset();
QVERIFY(inData.size() > 0);
@@ -284,7 +301,8 @@ void tst_QRingBuffer::indexOf()
for (int i = 1; i < 256; ++i) {
qint64 index = ringBuffer.indexOf(char(i));
QCOMPARE(index, qint64(i - 1));
- QCOMPARE(ringBuffer.indexOf(char(i), i), index);
+ QCOMPARE(ringBuffer.indexOf(char(i), i, i >> 1), index);
+ QCOMPARE(ringBuffer.indexOf(char(i), 256, i), Q_INT64_C(-1));
QCOMPARE(ringBuffer.indexOf(char(i), i - 1), -1); // test for absent char
}
}