summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qserialport/tst_qserialport.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/qserialport/tst_qserialport.cpp b/tests/auto/qserialport/tst_qserialport.cpp
index 947047a..22f3b65 100644
--- a/tests/auto/qserialport/tst_qserialport.cpp
+++ b/tests/auto/qserialport/tst_qserialport.cpp
@@ -112,6 +112,9 @@ private slots:
void clearAfterOpen();
+ void loopBack_data();
+ void loopBack();
+
protected slots:
void handleBytesWrittenAndExitLoopSlot(qint64 bytesWritten);
void handleBytesWrittenAndExitLoopSlot2(qint64 bytesWritten);
@@ -916,5 +919,35 @@ void tst_QSerialPort::clearAfterOpen()
QCOMPARE(senderPort.error(), QSerialPort::NoError);
}
+void tst_QSerialPort::loopBack_data()
+{
+ QTest::addColumn<int>("baudRate");
+
+ QTest::newRow("9600 N 1 None") << 9600;
+ QTest::newRow("115200 N 1 None") << 115200;
+ QTest::newRow("14400 N 1 None") << 14400;
+}
+
+// This test works with the connected Rx and Tx pins.
+void tst_QSerialPort::loopBack()
+{
+ QFETCH(int, baudRate);
+
+ QSerialPort serialPort(m_senderPortName);
+ QVERIFY(serialPort.open(QSerialPort::ReadWrite));
+
+ QVERIFY(serialPort.setBaudRate(baudRate));
+ QCOMPARE(serialPort.baudRate(), baudRate);
+
+ QCOMPARE(serialPort.write(alphabetArray), qint64(alphabetArray.size()));
+ QVERIFY(serialPort.waitForBytesWritten(500));
+
+ do {
+ QVERIFY(serialPort.waitForReadyRead(500));
+ } while (serialPort.bytesAvailable() < alphabetArray.size());
+
+ QCOMPARE(serialPort.readAll(), alphabetArray);
+}
+
QTEST_MAIN(tst_QSerialPort)
#include "tst_qserialport.moc"