summaryrefslogtreecommitdiff
path: root/services/tests
diff options
context:
space:
mode:
authorTianjie <xunchang@google.com>2021-01-21 21:16:44 -0800
committerTianjie <xunchang@google.com>2021-03-08 17:20:23 -0800
commite83420591827d2e6559b6b036f80599e83b24999 (patch)
treef60e42a3f27c99f14122bb9abbd54e7dce865416 /services/tests
parent23344ebb72e3cc15c76d8e92ecd91ce8651e631f (diff)
Extend the metrics for resume on reboot
We extend the resume on reboot metrics to help analyze the impact of new RoR features. Detailed atoms added are available in http://go/ror-metrics. This cl reports part of them in lock settings service. Bug: 179105110 Test: out/host/linux-x86/bin/statsd_testdrive 238; trigger ror & check the result; atest FrameworksServicesTests:RebootEscrowManagerTests Change-Id: I7e92c78cbd448bb49f941670d0c4489bc28d0886
Diffstat (limited to 'services/tests')
-rw-r--r--services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java43
1 files changed, 33 insertions, 10 deletions
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
index b51f4df43259..91342ce925f6 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
@@ -109,7 +110,8 @@ public class RebootEscrowManagerTests {
public interface MockableRebootEscrowInjected {
int getBootCount();
- void reportMetric(boolean success);
+ void reportMetric(boolean success, int errorCode, int serviceType, int attemptCount,
+ int escrowDurationInSeconds, int vbmetaDigestStatus, int durationSinceBootComplete);
}
static class MockInjector extends RebootEscrowManager.Injector {
@@ -119,6 +121,7 @@ public class RebootEscrowManagerTests {
private final UserManager mUserManager;
private final MockableRebootEscrowInjected mInjected;
private final RebootEscrowKeyStoreManager mKeyStoreManager;
+ private final boolean mServerBased;
MockInjector(Context context, UserManager userManager,
IRebootEscrow rebootEscrow,
@@ -128,6 +131,7 @@ public class RebootEscrowManagerTests {
super(context, storage);
mRebootEscrow = rebootEscrow;
mServiceConnection = null;
+ mServerBased = false;
RebootEscrowProviderHalImpl.Injector halInjector =
new RebootEscrowProviderHalImpl.Injector() {
@Override
@@ -149,6 +153,7 @@ public class RebootEscrowManagerTests {
super(context, storage);
mServiceConnection = serviceConnection;
mRebootEscrow = null;
+ mServerBased = true;
RebootEscrowProviderServerBasedImpl.Injector injector =
new RebootEscrowProviderServerBasedImpl.Injector(serviceConnection);
mRebootEscrowProvider = new RebootEscrowProviderServerBasedImpl(storage, injector);
@@ -168,6 +173,11 @@ public class RebootEscrowManagerTests {
}
@Override
+ public boolean serverBasedResumeOnReboot() {
+ return mServerBased;
+ }
+
+ @Override
public RebootEscrowProviderInterface getRebootEscrowProvider() {
return mRebootEscrowProvider;
}
@@ -195,8 +205,11 @@ public class RebootEscrowManagerTests {
}
@Override
- public void reportMetric(boolean success) {
- mInjected.reportMetric(success);
+ public void reportMetric(boolean success, int errorCode, int serviceType, int attemptCount,
+ int escrowDurationInSeconds, int vbmetaDigestStatus,
+ int durationSinceBootComplete) {
+ mInjected.reportMetric(success, errorCode, serviceType, attemptCount,
+ escrowDurationInSeconds, vbmetaDigestStatus, durationSinceBootComplete);
}
}
@@ -418,7 +431,9 @@ public class RebootEscrowManagerTests {
when(mInjected.getBootCount()).thenReturn(1);
ArgumentCaptor<Boolean> metricsSuccessCaptor = ArgumentCaptor.forClass(Boolean.class);
- doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture());
+ doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture(),
+ eq(0) /* error code */, eq(1) /* HAL based */, eq(1) /* attempt count */,
+ anyInt(), anyInt(), anyInt());
when(mRebootEscrow.retrieveKey()).thenAnswer(invocation -> keyByteCaptor.getValue());
mService.loadRebootEscrowDataIfAvailable(null);
@@ -451,7 +466,9 @@ public class RebootEscrowManagerTests {
// pretend reboot happens here
when(mInjected.getBootCount()).thenReturn(1);
ArgumentCaptor<Boolean> metricsSuccessCaptor = ArgumentCaptor.forClass(Boolean.class);
- doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture());
+ doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture(),
+ eq(0) /* error code */, eq(2) /* Server based */, eq(1) /* attempt count */,
+ anyInt(), anyInt(), anyInt());
when(mServiceConnection.unwrap(any(), anyLong()))
.thenAnswer(invocation -> invocation.getArgument(0));
@@ -485,7 +502,8 @@ public class RebootEscrowManagerTests {
// pretend reboot happens here
when(mInjected.getBootCount()).thenReturn(1);
ArgumentCaptor<Boolean> metricsSuccessCaptor = ArgumentCaptor.forClass(Boolean.class);
- doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture());
+ doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture(),
+ anyInt(), anyInt(), eq(2) /* attempt count */, anyInt(), anyInt(), anyInt());
when(mServiceConnection.unwrap(any(), anyLong()))
.thenThrow(new IOException())
@@ -528,7 +546,8 @@ public class RebootEscrowManagerTests {
mService.loadRebootEscrowDataIfAvailable(null);
verify(mRebootEscrow).retrieveKey();
- verify(mInjected, never()).reportMetric(anyBoolean());
+ verify(mInjected, never()).reportMetric(anyBoolean(), anyInt(), anyInt(), anyInt(),
+ anyInt(), anyInt(), anyInt());
}
@Test
@@ -554,7 +573,8 @@ public class RebootEscrowManagerTests {
when(mRebootEscrow.retrieveKey()).thenReturn(new byte[32]);
mService.loadRebootEscrowDataIfAvailable(null);
- verify(mInjected, never()).reportMetric(anyBoolean());
+ verify(mInjected, never()).reportMetric(anyBoolean(), anyInt(), anyInt(), anyInt(),
+ anyInt(), anyInt(), anyInt());
}
@Test
@@ -588,7 +608,8 @@ public class RebootEscrowManagerTests {
when(mRebootEscrow.retrieveKey()).thenAnswer(invocation -> keyByteCaptor.getValue());
mService.loadRebootEscrowDataIfAvailable(null);
- verify(mInjected).reportMetric(eq(true));
+ verify(mInjected).reportMetric(eq(true), eq(0) /* error code */, eq(1) /* HAL based */,
+ eq(1) /* attempt count */, anyInt(), anyInt(), anyInt());
}
@Test
@@ -615,7 +636,9 @@ public class RebootEscrowManagerTests {
when(mInjected.getBootCount()).thenReturn(1);
ArgumentCaptor<Boolean> metricsSuccessCaptor = ArgumentCaptor.forClass(Boolean.class);
- doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture());
+ doNothing().when(mInjected).reportMetric(metricsSuccessCaptor.capture(),
+ anyInt() /* error code */, eq(1) /* HAL based */, eq(1) /* attempt count */,
+ anyInt(), anyInt(), anyInt());
when(mRebootEscrow.retrieveKey()).thenAnswer(invocation -> new byte[32]);
mService.loadRebootEscrowDataIfAvailable(null);
verify(mRebootEscrow).retrieveKey();