diff options
author | Maria Yang <mariay@google.com> | 2023-08-01 20:31:28 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-08-01 20:31:28 +0000 |
commit | db05eff5a88d9ffdcb0661c0cd31cf298a566e26 (patch) | |
tree | 63c529e33bdadcd2496e010f1bd3398f03607c2c | |
parent | 22fede2259b2c2f981fa9e8000942f5138cf5e7b (diff) | |
parent | 9ebb249168f1a697c495bb87c2763bceb8a62938 (diff) | |
download | cts-db05eff5a88d9ffdcb0661c0cd31cf298a566e26.tar.gz |
Merge "Retry setDefaultDialerApplication if it times out." into stage-aosp-udc-ts-dev am: b88fd1efe0 am: 9ebb249168
Original change: https://googleplex-android-review.googlesource.com/c/platform/cts/+/24145289
Change-Id: Ifde84d5d3f6ff3144a85610638cfd8c790dd661a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | tests/devicepolicy/src/android/devicepolicy/cts/DefaultDialerApplicationTest.java | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/tests/devicepolicy/src/android/devicepolicy/cts/DefaultDialerApplicationTest.java b/tests/devicepolicy/src/android/devicepolicy/cts/DefaultDialerApplicationTest.java index f4253f95ef9..74f2c61bdbb 100644 --- a/tests/devicepolicy/src/android/devicepolicy/cts/DefaultDialerApplicationTest.java +++ b/tests/devicepolicy/src/android/devicepolicy/cts/DefaultDialerApplicationTest.java @@ -22,8 +22,8 @@ import static com.android.queryable.queries.IntentFilterQuery.intentFilter; import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertThrows; import static org.junit.Assume.assumeTrue; -import static org.testng.Assert.assertThrows; import android.app.admin.RemoteDevicePolicyManager; import android.app.role.RoleManager; @@ -40,6 +40,8 @@ import com.android.bedstead.harrier.annotations.enterprise.CanSetPolicyTest; import com.android.bedstead.harrier.annotations.enterprise.PolicyDoesNotApplyTest; import com.android.bedstead.harrier.policies.DefaultDialerApplication; import com.android.bedstead.nene.TestApis; +import com.android.bedstead.nene.exceptions.NeneException; +import com.android.bedstead.nene.utils.Retry; import com.android.bedstead.remotedpc.RemotePolicyManager; import com.android.bedstead.testapp.TestApp; import com.android.bedstead.testapp.TestAppInstance; @@ -85,11 +87,11 @@ public final class DefaultDialerApplicationTest { || (mRoleManager != null && mRoleManager.isRoleAvailable(RoleManager.ROLE_DIALER))); String previousDialerAppName = getDefaultDialerPackage(); try (TestAppInstance dialerApp = sDialerApp.install()) { - mDpm.setDefaultDialerApplication(dialerApp.packageName()); + setDefaultDialerApplication(mDpm, dialerApp.packageName()); assertThat(getDefaultDialerPackage()).isEqualTo(dialerApp.packageName()); } finally { - mDpm.setDefaultDialerApplication(previousDialerAppName); + setDefaultDialerApplication(mDpm, previousDialerAppName); } } @@ -103,11 +105,11 @@ public final class DefaultDialerApplicationTest { String previousDialerAppInDpc = sDeviceState.dpc().telecomManager() .getDefaultDialerPackage(); try (TestAppInstance dialerApp = sDialerApp.install(sDeviceState.dpc().user())) { - mDpm.setDefaultDialerApplication(dialerApp.packageName()); + setDefaultDialerApplication(mDpm, dialerApp.packageName()); // Make sure the default dialer in the test user is unchanged. assertThat(getDefaultDialerPackage()).isEqualTo(previousDialerAppInTest); } finally { - mDpm.setDefaultDialerApplication(previousDialerAppInDpc); + setDefaultDialerApplication(mDpm, previousDialerAppInDpc); } } @@ -120,11 +122,12 @@ public final class DefaultDialerApplicationTest { String previousDialerAppName = getDefaultDialerPackage(); try { - assertThrows(IllegalArgumentException.class, () -> - mDpm.setDefaultDialerApplication(FAKE_DIALER_APP_NAME)); + NeneException e = assertThrows(NeneException.class, () -> + setDefaultDialerApplication(mDpm, FAKE_DIALER_APP_NAME)); + assertThat(e).hasCauseThat().isInstanceOf(IllegalArgumentException.class); assertThat(getDefaultDialerPackage()).isEqualTo(previousDialerAppName); } finally { - mDpm.setDefaultDialerApplication(previousDialerAppName); + setDefaultDialerApplication(mDpm, previousDialerAppName); } } @@ -137,15 +140,33 @@ public final class DefaultDialerApplicationTest { || !mRoleManager.isRoleAvailable(RoleManager.ROLE_DIALER))); String previousDialerAppName = getDefaultDialerPackage(); try (TestAppInstance dialerApp = sDialerApp.install()) { - mDpm.setDefaultDialerApplication(dialerApp.packageName()); + setDefaultDialerApplication(mDpm, dialerApp.packageName()); assertThat(getDefaultDialerPackage()).isEqualTo(previousDialerAppName); } finally { - mDpm.setDefaultDialerApplication(previousDialerAppName); + setDefaultDialerApplication(mDpm, previousDialerAppName); } } private String getDefaultDialerPackage() { return sContext.getSystemService(TelecomManager.class).getDefaultDialerPackage(); } + + private void setDefaultDialerApplication(RemoteDevicePolicyManager dpm, String packageName) { + Retry.logic(() -> { + TestApis.logcat().clear(); + + dpm.setDefaultDialerApplication(packageName); + + var logcat = TestApis.logcat() + .dump(l -> l.contains("Error calling onAddRoleHolder()")); + + if (!logcat.isEmpty()) { + // Error adding role holder - could be due to busy broadcast queue + Thread.sleep(10_000); + throw new IllegalStateException( + "Error setting default dialer application. Relevant logcat: " + logcat); + } + }).runAndWrapException(); + } } |