From db27ac4672a0aa28abec2a301758ee14c385f350 Mon Sep 17 00:00:00 2001 From: Denis Shienkov Date: Tue, 8 Sep 2015 11:30:49 +0300 Subject: Add auto tests to check a properties ... such as baudRate, dataBits, parity, stopBits, and flowControl. Change-Id: Ife5c2993e0c0302d06ef5f51a9fdc53f87f95896 Reviewed-by: Sergey Belyashov Reviewed-by: Denis Shienkov --- tests/auto/qserialport/tst_qserialport.cpp | 171 +++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) (limited to 'tests') diff --git a/tests/auto/qserialport/tst_qserialport.cpp b/tests/auto/qserialport/tst_qserialport.cpp index 22f3b65..469586b 100644 --- a/tests/auto/qserialport/tst_qserialport.cpp +++ b/tests/auto/qserialport/tst_qserialport.cpp @@ -38,6 +38,11 @@ #include Q_DECLARE_METATYPE(QSerialPort::SerialPortError); +Q_DECLARE_METATYPE(QSerialPort::BaudRate); +Q_DECLARE_METATYPE(QSerialPort::DataBits); +Q_DECLARE_METATYPE(QSerialPort::Parity); +Q_DECLARE_METATYPE(QSerialPort::StopBits); +Q_DECLARE_METATYPE(QSerialPort::FlowControl); Q_DECLARE_METATYPE(QIODevice::OpenMode); Q_DECLARE_METATYPE(QIODevice::OpenModeFlag); Q_DECLARE_METATYPE(Qt::ConnectionType); @@ -85,6 +90,17 @@ private slots: void openNotExisting_data(); void openNotExisting(); + void baudRate_data(); + void baudRate(); + void dataBits_data(); + void dataBits(); + void parity_data(); + void parity(); + void stopBits_data(); + void stopBits(); + void flowControl_data(); + void flowControl(); + void flush(); void doubleFlush(); @@ -318,6 +334,161 @@ void tst_QSerialPort::openNotExisting() //QCOMPARE(qvariant_cast(errorSpy.at(0).at(0)), errorCode); } +void tst_QSerialPort::baudRate_data() +{ + QTest::addColumn("baudrate"); + QTest::newRow("Baud1200") << static_cast(QSerialPort::Baud1200); + QTest::newRow("Baud2400") << static_cast(QSerialPort::Baud2400); + QTest::newRow("Baud4800") << static_cast(QSerialPort::Baud4800); + QTest::newRow("Baud9600") << static_cast(QSerialPort::Baud9600); + QTest::newRow("Baud19200") << static_cast(QSerialPort::Baud19200); + QTest::newRow("Baud38400") << static_cast(QSerialPort::Baud38400); + QTest::newRow("Baud57600") << static_cast(QSerialPort::Baud57600); + QTest::newRow("Baud115200") << static_cast(QSerialPort::Baud115200); +} + +void tst_QSerialPort::baudRate() +{ + QFETCH(qint32, baudrate); + + { + // setup before opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.setBaudRate(baudrate)); + QCOMPARE(serialPort.baudRate(), baudrate); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + } + + { + // setup after opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + QVERIFY(serialPort.setBaudRate(baudrate)); + QCOMPARE(serialPort.baudRate(), baudrate); + } +} + +void tst_QSerialPort::dataBits_data() +{ + QTest::addColumn("databits"); + QTest::newRow("Data5") << QSerialPort::Data5; + QTest::newRow("Data6") << QSerialPort::Data6; + QTest::newRow("Data7") << QSerialPort::Data7; + QTest::newRow("Data8") << QSerialPort::Data8; +} + +void tst_QSerialPort::dataBits() +{ + QFETCH(QSerialPort::DataBits, databits); + + { + // setup before opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.setDataBits(databits)); + QCOMPARE(serialPort.dataBits(), databits); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + } + + { + // setup after opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + QVERIFY(serialPort.setDataBits(databits)); + QCOMPARE(serialPort.dataBits(), databits); + } +} + +void tst_QSerialPort::parity_data() +{ + QTest::addColumn("parity"); + QTest::newRow("NoParity") << QSerialPort::NoParity; + QTest::newRow("EvenParity") << QSerialPort::EvenParity; + QTest::newRow("OddParity") << QSerialPort::OddParity; + QTest::newRow("SpaceParity") << QSerialPort::SpaceParity; + QTest::newRow("MarkParity") << QSerialPort::MarkParity; +} + +void tst_QSerialPort::parity() +{ + QFETCH(QSerialPort::Parity, parity); + + { + // setup before opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.setParity(parity)); + QCOMPARE(serialPort.parity(), parity); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + } + + { + // setup after opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + QVERIFY(serialPort.setParity(parity)); + QCOMPARE(serialPort.parity(), parity); + } +} + +void tst_QSerialPort::stopBits_data() +{ + QTest::addColumn("stopbits"); + QTest::newRow("OneStop") << QSerialPort::OneStop; +#ifdef Q_OS_WIN + QTest::newRow("OneAndHalfStop") << QSerialPort::OneAndHalfStop; +#endif + QTest::newRow("TwoStop") << QSerialPort::TwoStop; +} + +void tst_QSerialPort::stopBits() +{ + QFETCH(QSerialPort::StopBits, stopbits); + + { + // setup before opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.setStopBits(stopbits)); + QCOMPARE(serialPort.stopBits(), stopbits); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + } + + { + // setup after opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + QVERIFY(serialPort.setStopBits(stopbits)); + QCOMPARE(serialPort.stopBits(), stopbits); + } +} + +void tst_QSerialPort::flowControl_data() +{ + QTest::addColumn("flowcontrol"); + QTest::newRow("NoFlowControl") << QSerialPort::NoFlowControl; + QTest::newRow("HardwareControl") << QSerialPort::HardwareControl; + QTest::newRow("SoftwareControl") << QSerialPort::SoftwareControl; +} + +void tst_QSerialPort::flowControl() +{ + QFETCH(QSerialPort::FlowControl, flowcontrol); + + { + // setup before opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.setFlowControl(flowcontrol)); + QCOMPARE(serialPort.flowControl(), flowcontrol); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + } + + { + // setup after opening + QSerialPort serialPort(m_senderPortName); + QVERIFY(serialPort.open(QIODevice::ReadWrite)); + QVERIFY(serialPort.setFlowControl(flowcontrol)); + QCOMPARE(serialPort.flowControl(), flowcontrol); + } +} + void tst_QSerialPort::handleBytesWrittenAndExitLoopSlot(qint64 bytesWritten) { QCOMPARE(bytesWritten, qint64(alphabetArray.size() + newlineArray.size())); -- cgit v1.2.1