diff --git a/packages/metrics_center/CHANGELOG.md b/packages/metrics_center/CHANGELOG.md index d4727adb0063..ec99e057db12 100644 --- a/packages/metrics_center/CHANGELOG.md +++ b/packages/metrics_center/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.5 + +- Fix JSON parsing issue when running in sound null-safety mode. + ## 1.0.4 - Fix un-await-ed Future in `SkiaPerfDestination.update`. diff --git a/packages/metrics_center/lib/src/google_benchmark.dart b/packages/metrics_center/lib/src/google_benchmark.dart index 809f9035cfd7..feb1f3622884 100644 --- a/packages/metrics_center/lib/src/google_benchmark.dart +++ b/packages/metrics_center/lib/src/google_benchmark.dart @@ -66,7 +66,7 @@ void _parseAnItem( ) { final String name = item[kNameKey] as String; final Map timeUnitMap = { - kUnitKey: item[_kTimeUnitKey] as String + if (item.containsKey(_kTimeUnitKey)) kUnitKey: item[_kTimeUnitKey] as String }; for (final String subResult in item.keys) { if (!_kNonNumericalValueSubResults.contains(subResult)) { diff --git a/packages/metrics_center/pubspec.yaml b/packages/metrics_center/pubspec.yaml index b95ab33b8022..617eaddd995a 100644 --- a/packages/metrics_center/pubspec.yaml +++ b/packages/metrics_center/pubspec.yaml @@ -1,5 +1,5 @@ name: metrics_center -version: 1.0.4 +version: 1.0.5 description: Support multiple performance metrics sources/formats and destinations. repository: https://github.com/flutter/packages/tree/main/packages/metrics_center diff --git a/packages/metrics_center/test/example_google_benchmark.json b/packages/metrics_center/test/example_google_benchmark.json index e2bf02837821..3a33678dd5ec 100644 --- a/packages/metrics_center/test/example_google_benchmark.json +++ b/packages/metrics_center/test/example_google_benchmark.json @@ -78,6 +78,33 @@ "real_coefficient": 6548, "big_o": "N", "time_unit": "ns" + }, + { + "name": "ParagraphFixture/TextBigO_BigO", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "ParagraphFixture/TextBigO", + "run_type": "aggregate", + "repetitions": 1, + "threads": 1, + "aggregate_name": "BigO", + "aggregate_unit": "time", + "cpu_coefficient": 3.8, + "real_coefficient": 3.89, + "big_o": "N", + "time_unit": "ns" + }, + { + "name": "ParagraphFixture/TextBigO_RMS", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "ParagraphFixture/TextBigO", + "run_type": "aggregate", + "repetitions": 1, + "threads": 1, + "aggregate_name": "RMS", + "aggregate_unit": "percentage", + "rms": 4.89 } ] } diff --git a/packages/metrics_center/test/google_benchmark_test.dart b/packages/metrics_center/test/google_benchmark_test.dart index 7dad807a92d3..5bb02cce4d5c 100644 --- a/packages/metrics_center/test/google_benchmark_test.dart +++ b/packages/metrics_center/test/google_benchmark_test.dart @@ -13,10 +13,10 @@ void main() { test('GoogleBenchmarkParser parses example json.', () async { final List points = await GoogleBenchmarkParser.parse('test/example_google_benchmark.json'); - expect(points.length, 6); + expect(points.length, 9); expectSetMatch( points.map((MetricPoint p) => p.value), - [101, 101, 4460, 4460, 6548, 6548], + [101, 101, 4460, 4460, 6548, 6548, 3.8, 3.89, 4.89], ); expectSetMatch( points.map((MetricPoint p) => p.tags[kSubResultKey]), @@ -25,6 +25,7 @@ void main() { 'real_time', 'cpu_coefficient', 'real_coefficient', + 'rms', ], ); expectSetMatch( @@ -33,6 +34,8 @@ void main() { 'BM_PaintRecordInit', 'SkParagraphFixture/ShortLayout', 'SkParagraphFixture/TextBigO_BigO', + 'ParagraphFixture/TextBigO_BigO', + 'ParagraphFixture/TextBigO_RMS', ], ); for (final MetricPoint p in points) {