use of com.google.firebase.perf.util.Clock in project firebase-android-sdk by firebase.
the class GaugeManagerTest method testGaugeManagerClearsTheQueueEachRun.
@Test
public void testGaugeManagerClearsTheQueueEachRun() {
PerfSession fakeSession = new PerfSession("sessionId", new Clock());
testGaugeManager.startCollectingGauges(fakeSession, ApplicationProcessState.BACKGROUND);
fakeCpuGaugeCollector.cpuMetricReadings.add(createFakeCpuMetricReading(200, 100));
fakeCpuGaugeCollector.cpuMetricReadings.add(createFakeCpuMetricReading(300, 400));
fakeMemoryGaugeCollector.memoryMetricReadings.add(createFakeAndroidMetricReading(/* currentUsedAppJavaHeapMemoryKb= */
1234));
assertThat(fakeCpuGaugeCollector.cpuMetricReadings).isNotEmpty();
assertThat(fakeMemoryGaugeCollector.memoryMetricReadings).isNotEmpty();
fakeScheduledExecutorService.simulateSleepExecutingAtMostOneTask();
assertThat(fakeCpuGaugeCollector.cpuMetricReadings).isEmpty();
assertThat(fakeMemoryGaugeCollector.memoryMetricReadings).isEmpty();
fakeCpuGaugeCollector.cpuMetricReadings.add(createFakeCpuMetricReading(200, 100));
fakeMemoryGaugeCollector.memoryMetricReadings.add(createFakeAndroidMetricReading(/* currentUsedAppJavaHeapMemoryKb= */
1234));
fakeMemoryGaugeCollector.memoryMetricReadings.add(createFakeAndroidMetricReading(/* currentUsedAppJavaHeapMemoryKb= */
2345));
assertThat(fakeCpuGaugeCollector.cpuMetricReadings).isNotEmpty();
assertThat(fakeMemoryGaugeCollector.memoryMetricReadings).isNotEmpty();
fakeScheduledExecutorService.simulateSleepExecutingAtMostOneTask();
assertThat(fakeCpuGaugeCollector.cpuMetricReadings).isEmpty();
assertThat(fakeMemoryGaugeCollector.memoryMetricReadings).isEmpty();
}
use of com.google.firebase.perf.util.Clock in project firebase-android-sdk by firebase.
the class GaugeManagerTest method testStopCollectingGaugesCreatesOneLastJobToConsumeAnyPendingMetrics.
@Test
public void testStopCollectingGaugesCreatesOneLastJobToConsumeAnyPendingMetrics() {
PerfSession fakeSession = new PerfSession("sessionId", new Clock());
testGaugeManager.startCollectingGauges(fakeSession, ApplicationProcessState.BACKGROUND);
assertThat(fakeScheduledExecutorService.isEmpty()).isFalse();
testGaugeManager.stopCollectingGauges();
assertThat(fakeScheduledExecutorService.isEmpty()).isFalse();
CpuMetricReading fakeCpuMetricReading = createFakeCpuMetricReading(200, 100);
fakeCpuGaugeCollector.cpuMetricReadings.add(fakeCpuMetricReading);
AndroidMemoryReading fakeMemoryMetricReading = createFakeAndroidMetricReading(/* currentUsedAppJavaHeapMemoryKb= */
23454678);
fakeMemoryGaugeCollector.memoryMetricReadings.add(fakeMemoryMetricReading);
assertThat(fakeScheduledExecutorService.getDelayToNextTask(TimeUnit.MILLISECONDS)).isEqualTo(TIME_TO_WAIT_BEFORE_FLUSHING_GAUGES_QUEUE_MS);
fakeScheduledExecutorService.simulateSleepExecutingAtMostOneTask();
GaugeMetric recordedGaugeMetric = getLastRecordedGaugeMetric(ApplicationProcessState.BACKGROUND, 1);
assertThatCpuGaugeMetricWasSentToTransport("sessionId", recordedGaugeMetric, fakeCpuMetricReading);
assertThatMemoryGaugeMetricWasSentToTransport("sessionId", recordedGaugeMetric, fakeMemoryMetricReading);
}
use of com.google.firebase.perf.util.Clock in project firebase-android-sdk by firebase.
the class GaugeManagerTest method stopCollectingCPUMetric_invalidCPUCaptureFrequency_OtherMetricsWithValidFrequencyInBackground.
@Test
public void stopCollectingCPUMetric_invalidCPUCaptureFrequency_OtherMetricsWithValidFrequencyInBackground() {
// PASS 1: Test with 0
doReturn(0L).when(mockConfigResolver).getSessionsCpuCaptureFrequencyBackgroundMs();
PerfSession fakeSession1 = new PerfSession("sessionId", new Clock());
testGaugeManager.startCollectingGauges(fakeSession1, ApplicationProcessState.BACKGROUND);
// Verify that Cpu metric collection is not started
verify(fakeCpuGaugeCollector, never()).startCollecting(ArgumentMatchers.anyLong(), ArgumentMatchers.nullable(Timer.class));
// Verify that Memory metric collection is started
verify(fakeMemoryGaugeCollector).startCollecting(ArgumentMatchers.anyLong(), ArgumentMatchers.nullable(Timer.class));
// PASS 2: Test with -ve value
doReturn(-25L).when(mockConfigResolver).getSessionsCpuCaptureFrequencyBackgroundMs();
PerfSession fakeSession2 = new PerfSession("sessionId", new Clock());
testGaugeManager.startCollectingGauges(fakeSession2, ApplicationProcessState.BACKGROUND);
// Verify that Cpu metric collection is not started
verify(fakeCpuGaugeCollector, never()).startCollecting(ArgumentMatchers.anyLong(), ArgumentMatchers.nullable(Timer.class));
// Verify that Memory metric collection is started
verify(fakeMemoryGaugeCollector, times(2)).startCollecting(ArgumentMatchers.anyLong(), ArgumentMatchers.any(Timer.class));
}
use of com.google.firebase.perf.util.Clock in project firebase-android-sdk by firebase.
the class GaugeManagerTest method startCollectingGaugesOnBackground_invalidMemoryCaptureMs_onlyDisableMemoryCollection.
@Test
public void startCollectingGaugesOnBackground_invalidMemoryCaptureMs_onlyDisableMemoryCollection() {
// PASS 1: Test with 0
doReturn(0L).when(mockConfigResolver).getSessionsMemoryCaptureFrequencyBackgroundMs();
PerfSession fakeSession1 = new PerfSession("sessionId", new Clock());
testGaugeManager.startCollectingGauges(fakeSession1, ApplicationProcessState.BACKGROUND);
// Verify that Memory metric collection is not started
verify(fakeMemoryGaugeCollector, never()).startCollecting(ArgumentMatchers.anyLong(), ArgumentMatchers.nullable(Timer.class));
// Verify that Cpu metric collection is started
verify(fakeCpuGaugeCollector).startCollecting(ArgumentMatchers.anyLong(), ArgumentMatchers.nullable(Timer.class));
// PASS 2: Test with -ve value
doReturn(-25L).when(mockConfigResolver).getSessionsMemoryCaptureFrequencyBackgroundMs();
PerfSession fakeSession2 = new PerfSession("sessionId", new Clock());
testGaugeManager.startCollectingGauges(fakeSession2, ApplicationProcessState.BACKGROUND);
// Verify that Memory metric collection is not started
verify(fakeMemoryGaugeCollector, never()).startCollecting(ArgumentMatchers.anyLong(), ArgumentMatchers.nullable(Timer.class));
// Verify that Cpu metric collection is started
verify(fakeCpuGaugeCollector, times(2)).startCollecting(ArgumentMatchers.anyLong(), ArgumentMatchers.any(Timer.class));
}
use of com.google.firebase.perf.util.Clock in project firebase-android-sdk by firebase.
the class GaugeManagerTest method stopCollectingGauges_invalidMemoryCollectionFrequency_appInForeground.
@Test
public void stopCollectingGauges_invalidMemoryCollectionFrequency_appInForeground() {
// PASS 1: Test with 0
doReturn(0L).when(mockConfigResolver).getSessionsMemoryCaptureFrequencyForegroundMs();
PerfSession fakeSession1 = new PerfSession("sessionId", new Clock());
testGaugeManager.startCollectingGauges(fakeSession1, ApplicationProcessState.FOREGROUND);
assertThat(fakeScheduledExecutorService.isEmpty()).isFalse();
// PASS 2: Test with -ve value
doReturn(-25L).when(mockConfigResolver).getSessionsMemoryCaptureFrequencyForegroundMs();
PerfSession fakeSession2 = new PerfSession("sessionId", new Clock());
testGaugeManager.startCollectingGauges(fakeSession2, ApplicationProcessState.FOREGROUND);
assertThat(fakeScheduledExecutorService.isEmpty()).isFalse();
}
Aggregations