diff options
author | Jeffrey Huang <jeffreyhuang@google.com> | 2021-12-13 02:32:07 -0800 |
---|---|---|
committer | Jeffrey Huang <jeffreyhuang@google.com> | 2021-12-13 05:06:22 -0800 |
commit | 7ae98d1b432190255ed145c15ecc1a728900b2c7 (patch) | |
tree | 6e988b125466c7f49c762394de57482e17b7c19c | |
parent | 6067edc475cf5f2b66d9c2cc05e54084d3c1fd15 (diff) | |
download | StatsD-7ae98d1b432190255ed145c15ecc1a728900b2c7.tar.gz |
Fix GaugeMetricBackfill
Bug: 210365157
Test: atest GaugeMetricsTests
Change-Id: Ic1227439373906c1734a8f8598633e72b95dae4f
-rw-r--r-- | tests/src/android/cts/statsd/atom/AtomTestCase.java | 21 | ||||
-rw-r--r-- | tests/src/android/cts/statsd/metric/GaugeMetricsTests.java | 4 |
2 files changed, 18 insertions, 7 deletions
diff --git a/tests/src/android/cts/statsd/atom/AtomTestCase.java b/tests/src/android/cts/statsd/atom/AtomTestCase.java index a4c43e07..1f33c202 100644 --- a/tests/src/android/cts/statsd/atom/AtomTestCase.java +++ b/tests/src/android/cts/statsd/atom/AtomTestCase.java @@ -404,17 +404,27 @@ public class AtomTestCase extends BaseTestCase { return atomTimestamp.stream().map(p -> p.first).collect(Collectors.toList()); } - protected void backfillGaugeMetricData(GaugeMetricDataWrapper dataWrapper) { - for (GaugeMetricData gaugeMetricData : dataWrapper.getDataList()) { + protected GaugeMetricDataWrapper backfillGaugeMetricData(GaugeMetricDataWrapper dataWrapper) { + GaugeMetricDataWrapper.Builder dataWrapperBuilder = dataWrapper.toBuilder(); + List<GaugeMetricData> backfilledMetricData = new ArrayList<>(); + for (GaugeMetricData gaugeMetricData : dataWrapperBuilder.getDataList()) { + GaugeMetricData.Builder gaugeMetricDataBuilder = gaugeMetricData.toBuilder(); + List<GaugeBucketInfo> backfilledBuckets = new ArrayList<>(); for (GaugeBucketInfo bucketInfo : gaugeMetricData.getBucketInfoList()) { - backfillGaugeBucket(bucketInfo.toBuilder()); + backfilledBuckets.add(backfillGaugeBucket(bucketInfo.toBuilder())); } + gaugeMetricDataBuilder.clearBucketInfo(); + gaugeMetricDataBuilder.addAllBucketInfo(backfilledBuckets); + backfilledMetricData.add(gaugeMetricDataBuilder.build()); } + dataWrapperBuilder.clearData(); + dataWrapperBuilder.addAllData(backfilledMetricData); + return dataWrapperBuilder.build(); } - private void backfillGaugeBucket(GaugeBucketInfo.Builder bucketInfoBuilder) { + private GaugeBucketInfo backfillGaugeBucket(GaugeBucketInfo.Builder bucketInfoBuilder) { if (bucketInfoBuilder.getAtomCount() != 0) { - return; + return bucketInfoBuilder.build(); } List<Pair<Atom, Long>> atomTimestampData = new ArrayList<>(); for (StatsLog.AggregatedAtomInfo atomInfo : bucketInfoBuilder.getAggregatedAtomInfoList()) { @@ -428,6 +438,7 @@ public class AtomTestCase extends BaseTestCase { bucketInfoBuilder.addAtom(atomTimestamp.first); bucketInfoBuilder.addElapsedTimestampNanos(atomTimestamp.second); } + return bucketInfoBuilder.build(); } /** diff --git a/tests/src/android/cts/statsd/metric/GaugeMetricsTests.java b/tests/src/android/cts/statsd/metric/GaugeMetricsTests.java index b5d6b83d..db6a818d 100644 --- a/tests/src/android/cts/statsd/metric/GaugeMetricsTests.java +++ b/tests/src/android/cts/statsd/metric/GaugeMetricsTests.java @@ -122,7 +122,7 @@ public class GaugeMetricsTests extends DeviceAtomTestCase { assertThat(metricReport.getMetricId()).isEqualTo(MetricsUtils.GAUGE_METRIC_ID); assertThat(metricReport.hasGaugeMetrics()).isTrue(); StatsLogReport.GaugeMetricDataWrapper gaugeData = metricReport.getGaugeMetrics(); - backfillGaugeMetricData(gaugeData); + gaugeData = backfillGaugeMetricData(gaugeData); assertThat(gaugeData.getDataCount()).isEqualTo(1); int bucketCount = gaugeData.getData(0).getBucketInfoCount(); @@ -321,7 +321,7 @@ public class GaugeMetricsTests extends DeviceAtomTestCase { assertThat(metricReport.getIsActive()).isFalse(); StatsLogReport.GaugeMetricDataWrapper gaugeData = metricReport.getGaugeMetrics(); - backfillGaugeMetricData(gaugeData); + gaugeData = backfillGaugeMetricData(gaugeData); assertThat(gaugeData.getDataCount()).isEqualTo(1); assertThat(gaugeData.getData(0).getBucketInfoCount()).isEqualTo(2); |