RestrictedPermissionsTest: Do not execute dropShellPermissionIdentity() until the installation is complete.
The installation process of 'session.commit(intentSender)' is asynchronous. It is possible that dropShellPermissionIdentity() has already been called before checking the installation permissions.
Test: run cts -m CtsPermission2TestCases -t android.permission2.cts.RestrictedPermissionsTest#onSideLoadWhitelistSomePermissions
Bug: 139108944
Signed-off-by: duanyangqi <duanyangqi@xiaomi.com>
diff --git a/tests/tests/permission2/src/android/permission2/cts/RestrictedPermissionsTest.java b/tests/tests/permission2/src/android/permission2/cts/RestrictedPermissionsTest.java
index 996630a..1bbad45 100644
--- a/tests/tests/permission2/src/android/permission2/cts/RestrictedPermissionsTest.java
+++ b/tests/tests/permission2/src/android/permission2/cts/RestrictedPermissionsTest.java
@@ -727,11 +727,10 @@
1, intent, PendingIntent.FLAG_ONE_SHOT).getIntentSender();
// Commit as shell to avoid confirm UI
- runWithShellPermissionIdentity(() ->
- session.commit(intentSender)
- );
-
- installLatch.await(UI_TIMEOUT, TimeUnit.MILLISECONDS);
+ runWithShellPermissionIdentity(() -> {
+ session.commit(intentSender);
+ installLatch.await(UI_TIMEOUT, TimeUnit.MILLISECONDS);
+ });
} finally {
getContext().unregisterReceiver(installReceiver);
}