// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter_devicelab/framework/devices.dart'; import 'package:flutter_devicelab/framework/framework.dart'; import 'package:flutter_devicelab/framework/task_result.dart'; import 'package:flutter_devicelab/tasks/gallery.dart'; Future<void> main() async { deviceOperatingSystem = DeviceOperatingSystem.android; await task(() async { final TaskResult withoutSemantics = await createGalleryTransitionTest()(); final TaskResult withSemantics = await createGalleryTransitionTest(semanticsEnabled: true)(); final bool withSemanticsDataMissing = withSemantics.benchmarkScoreKeys == null || withSemantics.benchmarkScoreKeys!.isEmpty; final bool withoutSemanticsDataMissing = withoutSemantics.benchmarkScoreKeys == null || withoutSemantics.benchmarkScoreKeys!.isEmpty; if (withSemanticsDataMissing || withoutSemanticsDataMissing) { String message = 'Lack of data'; if (withSemanticsDataMissing) { message += ' for test with semantics'; if (withoutSemanticsDataMissing) { message += ' and without semantics'; } } else { message += 'for test without semantics'; } return TaskResult.failure(message); } final List<String> benchmarkScoreKeys = <String>[]; final Map<String, dynamic> data = <String, dynamic>{}; for (final String key in withSemantics.benchmarkScoreKeys!) { final String deltaKey = 'delta_$key'; data[deltaKey] = (withSemantics.data![key] as num) - (withoutSemantics.data![key] as num); data['semantics_$key'] = withSemantics.data![key]; data[key] = withoutSemantics.data![key]; benchmarkScoreKeys.add(deltaKey); } return TaskResult.success(data, benchmarkScoreKeys: benchmarkScoreKeys); }); }