Clear the cache after the logs get pulled
Flag: EXEMPT bugfix
Bug: 381915369
Test: atest TelecomUnitTests:TelecomPulledAtomTest
Test: manual
Change-Id: Icf5856baa343c3c1e7ba896a45bce3141bff7371
diff --git a/src/com/android/server/telecom/metrics/ApiStats.java b/src/com/android/server/telecom/metrics/ApiStats.java
index f0b5dc7..4b23e47 100644
--- a/src/com/android/server/telecom/metrics/ApiStats.java
+++ b/src/com/android/server/telecom/metrics/ApiStats.java
@@ -191,6 +191,8 @@
Arrays.stream(mPulledAtoms.telecomApiStats).forEach(v -> data.add(
TelecomStatsLog.buildStatsEvent(getTag(),
v.getApiName(), v.getUid(), v.getApiResult(), v.getCount())));
+ mApiStatsMap.clear();
+ onAggregate();
return StatsManager.PULL_SUCCESS;
} else {
return StatsManager.PULL_SKIP;
diff --git a/src/com/android/server/telecom/metrics/AudioRouteStats.java b/src/com/android/server/telecom/metrics/AudioRouteStats.java
index 21624f1..4611b22 100644
--- a/src/com/android/server/telecom/metrics/AudioRouteStats.java
+++ b/src/com/android/server/telecom/metrics/AudioRouteStats.java
@@ -99,6 +99,8 @@
TelecomStatsLog.buildStatsEvent(getTag(),
v.getCallAudioRouteSource(), v.getCallAudioRouteDest(),
v.getSuccess(), v.getRevert(), v.getCount(), v.getAverageLatencyMs())));
+ mAudioRouteStatsMap.clear();
+ onAggregate();
return StatsManager.PULL_SUCCESS;
} else {
return StatsManager.PULL_SKIP;
diff --git a/src/com/android/server/telecom/metrics/CallStats.java b/src/com/android/server/telecom/metrics/CallStats.java
index 7ebeba6..8bdeffb 100644
--- a/src/com/android/server/telecom/metrics/CallStats.java
+++ b/src/com/android/server/telecom/metrics/CallStats.java
@@ -81,6 +81,8 @@
v.getCallDirection(), v.getExternalCall(), v.getEmergencyCall(),
v.getMultipleAudioAvailable(), v.getAccountType(), v.getUid(),
v.getCount(), v.getAverageDurationMs())));
+ mCallStatsMap.clear();
+ onAggregate();
return StatsManager.PULL_SUCCESS;
} else {
return StatsManager.PULL_SKIP;
diff --git a/src/com/android/server/telecom/metrics/ErrorStats.java b/src/com/android/server/telecom/metrics/ErrorStats.java
index f70f6d8..f334710 100644
--- a/src/com/android/server/telecom/metrics/ErrorStats.java
+++ b/src/com/android/server/telecom/metrics/ErrorStats.java
@@ -140,6 +140,8 @@
Arrays.stream(mPulledAtoms.telecomErrorStats).forEach(v -> data.add(
TelecomStatsLog.buildStatsEvent(getTag(),
v.getSubmodule(), v.getError(), v.getCount())));
+ mErrorStatsMap.clear();
+ onAggregate();
return StatsManager.PULL_SUCCESS;
} else {
return StatsManager.PULL_SKIP;
diff --git a/tests/src/com/android/server/telecom/tests/TelecomPulledAtomTest.java b/tests/src/com/android/server/telecom/tests/TelecomPulledAtomTest.java
index 8ae734c..d3c7859 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomPulledAtomTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomPulledAtomTest.java
@@ -207,12 +207,14 @@
createTestFileForApiStats(System.currentTimeMillis() - MIN_PULL_INTERVAL_MILLIS - 1);
ApiStats apiStats = spy(new ApiStats(mSpyContext, mLooper));
final List<StatsEvent> data = new ArrayList<>();
+ int sizePulled = apiStats.mPulledAtoms.telecomApiStats.length;
int result = apiStats.pull(data);
assertEquals(StatsManager.PULL_SUCCESS, result);
verify(apiStats).onPull(eq(data));
- assertEquals(data.size(), apiStats.mPulledAtoms.telecomApiStats.length);
+ assertEquals(data.size(), sizePulled);
+ assertEquals(apiStats.mPulledAtoms.telecomApiStats.length, 0);
}
@Test
@@ -233,12 +235,14 @@
createTestFileForAudioRouteStats(System.currentTimeMillis() - MIN_PULL_INTERVAL_MILLIS - 1);
AudioRouteStats audioRouteStats = spy(new AudioRouteStats(mSpyContext, mLooper));
final List<StatsEvent> data = new ArrayList<>();
+ int sizePulled = audioRouteStats.mPulledAtoms.callAudioRouteStats.length;
int result = audioRouteStats.pull(data);
assertEquals(StatsManager.PULL_SUCCESS, result);
verify(audioRouteStats).onPull(eq(data));
- assertEquals(data.size(), audioRouteStats.mPulledAtoms.callAudioRouteStats.length);
+ assertEquals(data.size(), sizePulled);
+ assertEquals(audioRouteStats.mPulledAtoms.callAudioRouteStats.length, 0);
}
@Test
@@ -259,12 +263,14 @@
createTestFileForCallStats(System.currentTimeMillis() - MIN_PULL_INTERVAL_MILLIS - 1);
CallStats callStats = spy(new CallStats(mSpyContext, mLooper));
final List<StatsEvent> data = new ArrayList<>();
+ int sizePulled = callStats.mPulledAtoms.callStats.length;
int result = callStats.pull(data);
assertEquals(StatsManager.PULL_SUCCESS, result);
verify(callStats).onPull(eq(data));
- assertEquals(data.size(), callStats.mPulledAtoms.callStats.length);
+ assertEquals(data.size(), sizePulled);
+ assertEquals(callStats.mPulledAtoms.callStats.length, 0);
}
@Test
@@ -285,12 +291,14 @@
createTestFileForErrorStats(System.currentTimeMillis() - MIN_PULL_INTERVAL_MILLIS - 1);
ErrorStats errorStats = spy(new ErrorStats(mSpyContext, mLooper));
final List<StatsEvent> data = new ArrayList<>();
+ int sizePulled = errorStats.mPulledAtoms.telecomErrorStats.length;
int result = errorStats.pull(data);
assertEquals(StatsManager.PULL_SUCCESS, result);
verify(errorStats).onPull(eq(data));
- assertEquals(data.size(), errorStats.mPulledAtoms.telecomErrorStats.length);
+ assertEquals(data.size(), sizePulled);
+ assertEquals(errorStats.mPulledAtoms.telecomErrorStats.length, 0);
}
@Test