diff options
author | Ivan Solovev <ivan.solovev@qt.io> | 2022-12-06 12:49:48 +0100 |
---|---|---|
committer | Ivan Solovev <ivan.solovev@qt.io> | 2022-12-07 10:06:41 +0100 |
commit | 71791866d3e167b89d8fc94162fa778e6b577ddb (patch) | |
tree | 12e89ce994f57262c84866070ed03bdd870d64ed /tests | |
parent | 956d59accd2d9f42d17b0f202332c20eb649dfdc (diff) | |
download | qtserialport-71791866d3e167b89d8fc94162fa778e6b577ddb.tar.gz |
Fix bindable properties
It looks like the bindable property implementation has changed after
the support for bindable properties was added to the module.
And because of the lack of testing in the CI, we failed to notice that
the tests started to fail.
This patch fixes the bindable properties implementation.
Fixes: QTBUG-109219
Pick-to: 6.4 6.2
Change-Id: Id2677d6dfb74f26881c4ae73a844136fff160b02
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qserialport/tst_qserialport.cpp | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/tests/auto/qserialport/tst_qserialport.cpp b/tests/auto/qserialport/tst_qserialport.cpp index 9613208..a7eeb14 100644 --- a/tests/auto/qserialport/tst_qserialport.cpp +++ b/tests/auto/qserialport/tst_qserialport.cpp @@ -1379,30 +1379,38 @@ void tst_QSerialPort::bindingsAndProperties() QCOMPARE(errorChangedSpy.at(0).value(0).toInt(), QSerialPort::SerialPortError::NoError); sp.setPortName(m_receiverPortName); - sp.open(QIODevice::ReadOnly); + const bool portOpened = sp.open(QIODevice::ReadOnly); // -- break enabled - QProperty<bool> beProp(false); - QCOMPARE(beProp.value(), false); + if (portOpened) { + QProperty<bool> beProp(false); + QCOMPARE(beProp.value(), false); - sp.bindableIsBreakEnabled().setBinding(Qt::makePropertyBinding(beProp)); - QCOMPARE(sp.isBreakEnabled(), false); + sp.bindableIsBreakEnabled().setBinding(Qt::makePropertyBinding(beProp)); + QCOMPARE(sp.isBreakEnabled(), false); - const QSignalSpy breakEnabledChangedSpy(&sp, &QSerialPort::breakEnabledChanged); + const QSignalSpy breakEnabledChangedSpy(&sp, &QSerialPort::breakEnabledChanged); - beProp = true; - QCOMPARE(sp.isBreakEnabled(), true); - QCOMPARE(breakEnabledChangedSpy.size(), 1); - QCOMPARE(breakEnabledChangedSpy.at(0).value(0).toBool(), true); + beProp = true; + QCOMPARE(sp.isBreakEnabled(), true); + QCOMPARE(breakEnabledChangedSpy.size(), 1); + QCOMPARE(breakEnabledChangedSpy.at(0).value(0).toBool(), true); - beProp.setBinding(sp.bindableIsBreakEnabled().makeBinding()); - sp.setBreakEnabled(false); - QCOMPARE(beProp.value(), false); + beProp.setBinding(sp.bindableIsBreakEnabled().makeBinding()); + sp.setBreakEnabled(false); + QCOMPARE(beProp.value(), false); - beProp.setBinding([&] { return sp.isBreakEnabled(); }); - sp.setBreakEnabled(true); - QCOMPARE(beProp.value(), true); + beProp.setBinding([&] { return sp.isBreakEnabled(); }); + sp.setBreakEnabled(true); + QCOMPARE(beProp.value(), true); + } else { + // setting isBreakEnabled() will return false and raise an error + const auto currErrorCount = errorChangedSpy.size(); + sp.setBreakEnabled(true); + QCOMPARE(errorProp.value(), QSerialPort::SerialPortError::NotOpenError); + QCOMPARE(errorChangedSpy.size(), currErrorCount + 1); + } } QTEST_MAIN(tst_QSerialPort) |