summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaria Yang <mariay@google.com>2023-08-01 20:31:28 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-08-01 20:31:28 +0000
commitdb05eff5a88d9ffdcb0661c0cd31cf298a566e26 (patch)
tree63c529e33bdadcd2496e010f1bd3398f03607c2c
parent22fede2259b2c2f981fa9e8000942f5138cf5e7b (diff)
parent9ebb249168f1a697c495bb87c2763bceb8a62938 (diff)
downloadcts-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.java41
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();
+ }
}