diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qserialport/tst_qserialport.cpp | 33 |
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" |