From 43932aa2ca0b16bcdda1efef7368877c8a8ca7e1 Mon Sep 17 00:00:00 2001 From: Kate Lovett Date: Tue, 24 Sep 2019 12:38:28 -0700 Subject: [PATCH] Benchmark for un-triaged image results on Flutter Gold (#40634) --- .../bin/tasks/flutter_gold_triage.dart | 35 +++++++++++++++++++ dev/devicelab/manifest.yaml | 6 ++++ 2 files changed, 41 insertions(+) create mode 100644 dev/devicelab/bin/tasks/flutter_gold_triage.dart diff --git a/dev/devicelab/bin/tasks/flutter_gold_triage.dart b/dev/devicelab/bin/tasks/flutter_gold_triage.dart new file mode 100644 index 00000000000..3c5fca376b7 --- /dev/null +++ b/dev/devicelab/bin/tasks/flutter_gold_triage.dart @@ -0,0 +1,35 @@ +// Copyright 2019 The Chromium 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 'dart:async'; +import 'dart:convert'; +import 'dart:io'; + +import 'package:flutter_devicelab/framework/framework.dart'; + +const String _kTriageCountKey = 'count'; + +Future getTriageCount() async { + final HttpClient skiaClient = HttpClient(); + int digestCount = 0; + try { + final HttpClientRequest request = await skiaClient.getUrl(Uri.parse( + 'https://flutter-gold.skia.org/json/trstatus' + )); + final HttpClientResponse response = await request.close(); + final String responseBody = await response.transform(utf8.decoder).join(); + final Map json = jsonDecode(responseBody); + digestCount = json['corpStatus'][0]['untriagedCount']; + } catch(e) { + return TaskResult.failure(e.toString()); + } + return TaskResult.success( + {_kTriageCountKey: digestCount}, + benchmarkScoreKeys: [_kTriageCountKey], + ); +} + +Future main() async { + await task(() => getTriageCount()); +} diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml index 46e63dff272..e7b7a74cb33 100644 --- a/dev/devicelab/manifest.yaml +++ b/dev/devicelab/manifest.yaml @@ -655,6 +655,12 @@ tasks: stage: devicelab required_agent_capabilities: ["linux/android"] + flutter_gold_triage: + description: > + Checks the number of un-triaged image digests from Flutter Gold. + stage: devicelab + required_agent_capabilities: ["linux/android"] + # run_without_leak_linux: # description: > # Checks that `flutter run` does not leak dart on Linux.