Details
-
Suggestion
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
Description
Currently, most unit tests in the CI for QtBluetooth do nothing, because they need a device to connect to. So essentially there is no CI for QtBluetooth. Before the 6.2 release, we fixed a lot of bugs which were unnoticed for a long time. It would be nice if we had more automated testing.
There are three implementations for BTLE peripheral and five implementations for BTLE central in QtBluetooth. It would be nice to test them all.
This tasks proposes to have an automated test environment to test QtBluetooth.
A test setup consisting of three devices in the peripheral role:
- a Mac
- a Linux PC
- an Android phone
and four devices in the central role:
- a Mac
- an Android phone
- a Linux PC
- a Windows PC
Then, on each of the 12 possible central-peripheral combinations, test should be run. One PC should orchestrate that and trigger the builds and runs on all the machines.
As a starting point, "bluetoothtestdevice" as introduced in https://codereview.qt-project.org/c/qt/qtconnectivity/+/347091 could run on the peripherals and "tst_qlowenergycontroller_device" as introduced in https://codereview.qt-project.org/c/qt/qtconnectivity/+/347342 could run on the central devices.
As such a test setup is probably quite flaky, it should not be integrated into COIN and run with each patch. Rather, it could run continuously (or daily) and report its results on some website, similar to the coverage tests or the performance tests.