-
This is effectively a complete rewrite of the tests. Some of the common functionality has been split out to apertis_tests_lib. The external interfaces and behaviour of the tests should have remained unchanged. The tests needed to change considerably in structure because of the difference between how BlueZ 4 and BlueZ 5 handle device objects. BlueZ 4 only creates a device object if an adapter is paired with that device. BlueZ 5 creates it as soon as a device is discovered. Apart from that, the main differences between the two APIs are in the shift to standard D-Bus interfaces (Properties and ObjectManager) in BlueZ 5. While rewriting the tests, a lot of multi-second sleep() calls have been removed in favour of waiting for the relevant completion signals from the D-Bus API. This means some potentially unbounded waits if the Bluetooth daemon misbehaves or ends up in a state the unit test does not expect. But otherwise it means faster test execution and no failures due to races between the sleep() and the Bluetooth daemon completing an operation. [ Small updates for review comments ] Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Differential Revision: https://phabricator.apertis.org/D971
f49438b6