preserve detailFiles entry in TaskResult JSON (#70668)
* preserve detailFiles entry in TaskResult JSON
diff --git a/dev/devicelab/lib/framework/task_result.dart b/dev/devicelab/lib/framework/task_result.dart
index 6485363..1129d12 100644
--- a/dev/devicelab/lib/framework/task_result.dart
+++ b/dev/devicelab/lib/framework/task_result.dart
@@ -10,7 +10,7 @@
/// Constructs a successful result.
TaskResult.success(this.data, {
this.benchmarkScoreKeys = const <String>[],
- this.detailFiles,
+ this.detailFiles = const <String>[],
})
: succeeded = true,
message = 'success' {
@@ -29,11 +29,14 @@
}
/// Constructs a successful result using JSON data stored in a file.
- factory TaskResult.successFromFile(File file,
- {List<String> benchmarkScoreKeys}) {
+ factory TaskResult.successFromFile(File file, {
+ List<String> benchmarkScoreKeys = const <String>[],
+ List<String> detailFiles = const <String>[],
+ }) {
return TaskResult.success(
json.decode(file.readAsStringSync()) as Map<String, dynamic>,
benchmarkScoreKeys: benchmarkScoreKeys,
+ detailFiles: detailFiles,
);
}
@@ -42,8 +45,11 @@
final bool success = json['success'] as bool;
if (success) {
final List<String> benchmarkScoreKeys = (json['benchmarkScoreKeys'] as List<dynamic> ?? <String>[]).cast<String>();
+ final List<String> detailFiles = (json['detailFiles'] as List<dynamic> ?? <String>[]).cast<String>();
return TaskResult.success(json['data'] as Map<String, dynamic>,
- benchmarkScoreKeys: benchmarkScoreKeys);
+ benchmarkScoreKeys: benchmarkScoreKeys,
+ detailFiles: detailFiles,
+ );
}
return TaskResult.failure(json['reason'] as String);
@@ -54,7 +60,7 @@
: succeeded = false,
data = null,
detailFiles = null,
- benchmarkScoreKeys = const <String>[];
+ benchmarkScoreKeys = null;
/// Whether the task succeeded.
final bool succeeded;
@@ -98,8 +104,7 @@
if (succeeded) {
json['data'] = data;
- if (detailFiles != null)
- json['detailFiles'] = detailFiles;
+ json['detailFiles'] = detailFiles;
json['benchmarkScoreKeys'] = benchmarkScoreKeys;
} else {
json['reason'] = message;
diff --git a/dev/devicelab/lib/tasks/gallery.dart b/dev/devicelab/lib/tasks/gallery.dart
index 66b4ae0..a6994fb 100644
--- a/dev/devicelab/lib/tasks/gallery.dart
+++ b/dev/devicelab/lib/tasks/gallery.dart
@@ -119,15 +119,14 @@
summary['transitions'] = transitions;
summary['missed_transition_count'] = _countMissedTransitions(transitions);
}
- final List<String> detailFiles = <String>[
- if (transitionDurationFile != null)
- '${galleryDirectory.path}/build/$transitionDurationFile.json',
- if (timelineTraceFile != null)
- '${galleryDirectory.path}/build/$timelineTraceFile.json'
- ];
return TaskResult.success(summary,
- detailFiles: detailFiles.isNotEmpty ? detailFiles : null,
+ detailFiles: <String>[
+ if (transitionDurationFile != null)
+ '${galleryDirectory.path}/build/$transitionDurationFile.json',
+ if (timelineTraceFile != null)
+ '${galleryDirectory.path}/build/$timelineTraceFile.json'
+ ],
benchmarkScoreKeys: <String>[
if (transitionDurationFile != null)
'missed_transition_count',
diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart
index 294fd19..5467766 100644
--- a/dev/devicelab/lib/tasks/perf_tests.dart
+++ b/dev/devicelab/lib/tasks/perf_tests.dart
@@ -640,10 +640,6 @@
final Map<String, dynamic> data = json.decode(
file('$testDirectory/build/$resultFilename.json').readAsStringSync(),
) as Map<String, dynamic>;
- final List<String> detailFiles = <String>[
- if (saveTraceFile)
- '$testDirectory/build/$traceFilename.json',
- ];
if (data['frame_count'] as int < 5) {
return TaskResult.failure(
@@ -657,7 +653,10 @@
final bool isAndroid = deviceOperatingSystem == DeviceOperatingSystem.android;
return TaskResult.success(
data,
- detailFiles: detailFiles.isNotEmpty ? detailFiles : null,
+ detailFiles: <String>[
+ if (saveTraceFile)
+ '$testDirectory/build/$traceFilename.json',
+ ],
benchmarkScoreKeys: benchmarkScoreKeys ?? <String>[
..._kCommonScoreKeys,
'average_vsync_transitions_missed',
diff --git a/dev/devicelab/test/task_result_test.dart b/dev/devicelab/test/task_result_test.dart
index e883486..0789d5b 100644
--- a/dev/devicelab/test/task_result_test.dart
+++ b/dev/devicelab/test/task_result_test.dart
@@ -17,6 +17,7 @@
'not_a_metric': 'something',
},
'benchmarkScoreKeys': <String>['i', 'j'],
+ 'detailFiles': <String>[],
};
final TaskResult result = TaskResult.fromJson(expectedJson);
expect(result.toJson(), expectedJson);
@@ -30,6 +31,7 @@
'success': true,
'data': null,
'benchmarkScoreKeys': <String>[],
+ 'detailFiles': <String>[],
};
expect(result.toJson(), expectedJson);
});