summaryrefslogtreecommitdiff
path: root/tests/auto/qserialport/tst_qserialport.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-01-25 10:26:13 +0100
committerLiang Qi <liang.qi@qt.io>2017-01-25 10:26:13 +0100
commit4458f9376aa88b556e38d81180c5966889009bfb (patch)
tree44b5b9921eb4f9cf5030317685544c4d20820935 /tests/auto/qserialport/tst_qserialport.cpp
parent23902340662f1ef6f5dafe68a34b593aed6ea497 (diff)
parentf640521532087dc76d36b25a6c49b2f64afcd4de (diff)
downloadqtserialport-4458f9376aa88b556e38d81180c5966889009bfb.tar.gz
Merge remote-tracking branch 'origin/5.8' into devv5.9.0-alpha1
Conflicts: .qmake.conf Change-Id: Ie713faf0d6395f11477fceb35c93388756e33fae
Diffstat (limited to 'tests/auto/qserialport/tst_qserialport.cpp')
-rw-r--r--tests/auto/qserialport/tst_qserialport.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/auto/qserialport/tst_qserialport.cpp b/tests/auto/qserialport/tst_qserialport.cpp
index 33a48fe..94eaaa5 100644
--- a/tests/auto/qserialport/tst_qserialport.cpp
+++ b/tests/auto/qserialport/tst_qserialport.cpp
@@ -98,6 +98,7 @@ private slots:
void rts();
void dtr();
+ void independenceRtsAndDtr();
void flush();
void doubleFlush();
@@ -549,6 +550,58 @@ void tst_QSerialPort::dtr()
QCOMPARE(qvariant_cast<bool>(dtrSpy.at(2).at(0)), toggle3);
}
+void tst_QSerialPort::independenceRtsAndDtr()
+{
+ QSerialPort serialPort(m_senderPortName);
+ QVERIFY(serialPort.open(QIODevice::ReadWrite)); // No flow control by default!
+
+ QVERIFY(serialPort.setDataTerminalReady(true));
+ QVERIFY(serialPort.setRequestToSend(true));
+ QVERIFY(serialPort.isDataTerminalReady());
+ QVERIFY(serialPort.isRequestToSend());
+
+ // check that DTR changing does not change RTS
+ QVERIFY(serialPort.setDataTerminalReady(false));
+ QVERIFY(!serialPort.isDataTerminalReady());
+ QVERIFY(serialPort.isRequestToSend());
+ QVERIFY(serialPort.setDataTerminalReady(true));
+ QVERIFY(serialPort.isDataTerminalReady());
+ QVERIFY(serialPort.isRequestToSend());
+
+ // check that RTS changing does not change DTR
+ QVERIFY(serialPort.setRequestToSend(false));
+ QVERIFY(!serialPort.isRequestToSend());
+ QVERIFY(serialPort.isDataTerminalReady());
+ QVERIFY(serialPort.setRequestToSend(true));
+ QVERIFY(serialPort.isRequestToSend());
+ QVERIFY(serialPort.isDataTerminalReady());
+
+ // check that baud rate changing does not change DTR or RTS
+ QVERIFY(serialPort.setBaudRate(115200));
+ QVERIFY(serialPort.isRequestToSend());
+ QVERIFY(serialPort.isDataTerminalReady());
+
+ // check that data bits changing does not change DTR or RTS
+ QVERIFY(serialPort.setDataBits(QSerialPort::Data7));
+ QVERIFY(serialPort.isRequestToSend());
+ QVERIFY(serialPort.isDataTerminalReady());
+
+ // check that parity changing does not change DTR or RTS
+ QVERIFY(serialPort.setParity(QSerialPort::EvenParity));
+ QVERIFY(serialPort.isRequestToSend());
+ QVERIFY(serialPort.isDataTerminalReady());
+
+ // check that stop bits changing does not change DTR or RTS
+ QVERIFY(serialPort.setStopBits(QSerialPort::TwoStop));
+ QVERIFY(serialPort.isRequestToSend());
+ QVERIFY(serialPort.isDataTerminalReady());
+
+ // check that software flow control changing does not change DTR or RTS
+ QVERIFY(serialPort.setFlowControl(QSerialPort::SoftwareControl));
+ QVERIFY(serialPort.isRequestToSend());
+ QVERIFY(serialPort.isDataTerminalReady());
+}
+
void tst_QSerialPort::handleBytesWrittenAndExitLoopSlot(qint64 bytesWritten)
{
QCOMPARE(bytesWritten, qint64(alphabetArray.size() + newlineArray.size()));