summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2023-09-04 15:41:08 +0200
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2023-09-05 11:40:42 +0200
commitb0344c5cf3fb85ad26a0cb36b86e085ffe80ee5b (patch)
tree07330c55e015feee1f00fc5fbe61c889b57cf0b2 /tests
parent4c8163a01d41658c4017fa2dc1a75622248b6ba5 (diff)
Bluetooth autotests: do _not_ request permissions to use BT
When running in "ci" test environment, only check them. Normally, requesting a permission may trigger a system (such as macOS) to show a popup/alert, requesting a permission to use Bluetooth. But on CI there is nobody to click 'Allow' button. Even worse though, the 'trick' with a nested loop was quite useless there, test was essentially timing out after 15m instead of interrupting the loop after 30 seconds. Now the part requesting permission is conditional with testing QTEST_ENVIRONMENT env. variable (which contains "ci" when running on CI. Pick-to: 6.6 Task-number: QTBUG-115945 Change-Id: If7ec8e2bd7a7aa9602a31c5a0f00b756e9523012 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp8
-rw-r--r--tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp19
-rw-r--r--tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp5
3 files changed, 18 insertions, 14 deletions
diff --git a/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp b/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
index b192e120..32da7da8 100644
--- a/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
+++ b/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
@@ -82,16 +82,18 @@ tst_QBluetoothDeviceDiscoveryAgent::tst_QBluetoothDeviceDiscoveryAgent()
qRegisterMetaType<QBluetoothDeviceDiscoveryAgent::Error>();
#if QT_CONFIG(permissions)
permissionStatus = qApp->checkPermission(QBluetoothPermission{});
- if (permissionStatus == Qt::PermissionStatus::Undetermined) {
+
+ const bool ciRun = qEnvironmentVariable("QTEST_ENVIRONMENT").split(' ').contains("ci");
+ if (!ciRun && permissionStatus == Qt::PermissionStatus::Undetermined) {
QTestEventLoop loop;
qApp->requestPermission(QBluetoothPermission{}, [this, &loop](const QPermission &permission){
permissionStatus = permission.status();
loop.exitLoop();
});
- if (permissionStatus == Qt::PermissionStatus::Undetermined) // Did not return immediately?
+ if (permissionStatus == Qt::PermissionStatus::Undetermined)
loop.enterLoopMSecs(30000);
}
-#endif
+#endif // QT_CONFIG(permissions)
}
tst_QBluetoothDeviceDiscoveryAgent::~tst_QBluetoothDeviceDiscoveryAgent()
diff --git a/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp b/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
index a304d91a..77530c6b 100644
--- a/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
+++ b/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
@@ -96,19 +96,20 @@ tst_QLowEnergyController::tst_QLowEnergyController()
// FIXME: for Android, set additional parameters for scan and connect
// permissions.
permissionStatus = qApp->checkPermission(QBluetoothPermission{});
- if (permissionStatus == Qt::PermissionStatus::Undetermined) {
- QTestEventLoop eventLoop;
- qApp->requestPermission(QBluetoothPermission{}, [this, &eventLoop](const QPermission &permission){
+ // Note: even with missing Bluetooth permission, we still can run tests on
+ // LE controller to test its logic/errors it emits, even if we cannot scan
+ // and cannot connect.
+ const bool ciRun = qEnvironmentVariable("QTEST_ENVIRONMENT").split(' ').contains("ci");
+ if (!ciRun && permissionStatus == Qt::PermissionStatus::Undetermined) {
+ QTestEventLoop loop;
+ qApp->requestPermission(QBluetoothPermission{}, [this, &loop](const QPermission &permission){
permissionStatus = permission.status();
- eventLoop.exitLoop();
+ loop.exitLoop();
});
if (permissionStatus == Qt::PermissionStatus::Undetermined)
- eventLoop.enterLoop(30000);
+ loop.enterLoopMSecs(30000);
}
- // Note: even with missing Bluetooth permission, we still can run tests on
- // LE controller to test its logic/errors it emits, even if we cannot scan
- // and cannot connect.
-#endif // permission
+#endif // QT_CONFIG(permissions)
}
tst_QLowEnergyController::~tst_QLowEnergyController()
diff --git a/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp b/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
index 80ad9938..854babb3 100644
--- a/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
+++ b/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
@@ -52,7 +52,8 @@ tst_QLowEnergyDescriptor::tst_QLowEnergyDescriptor() :
QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true"));
#if QT_CONFIG(permissions)
permissionStatus = qApp->checkPermission(QBluetoothPermission{});
- if (permissionStatus == Qt::PermissionStatus::Undetermined) {
+ const bool ciRun = qEnvironmentVariable("QTEST_ENVIRONMENT").split(' ').contains("ci");
+ if (!ciRun && permissionStatus == Qt::PermissionStatus::Undetermined) {
QTestEventLoop loop;
qApp->requestPermission(QBluetoothPermission{}, [this, &loop](const QPermission &permission){
permissionStatus = permission.status();
@@ -61,7 +62,7 @@ tst_QLowEnergyDescriptor::tst_QLowEnergyDescriptor() :
if (permissionStatus == Qt::PermissionStatus::Undetermined)
loop.enterLoopMSecs(30000);
}
-#endif
+#endif // QT_CONFIG(permissions)
}
tst_QLowEnergyDescriptor::~tst_QLowEnergyDescriptor()