
Partial re-land of https://github.com/flutter/flutter/pull/165628: - Fixes the mistake that the `Cocoon` class did things that well, were not specific to Cocoon. - Renamed to `MetricsResultWriter`, as that is all it does now. --- Closes https://github.com/flutter/flutter/issues/165618. The `devicelab/bin/test_runner.dart upload-metrics` command use to have _two_ responsibilities: - Well, upload test **metrics** (benchmarks) to Skia Perf (it still does that) - Upload test **status** to Cocoon (it did until https://github.com/flutter/flutter/pull/165614) As https://github.com/flutter/flutter/pull/165614 proved, this API predated the current LUCI setup, where Cocoon itself receives task status updates from LUCI, and it turns out this entire time, DeviceLab was making (at best) NOP calls, and at worst, causing crashes and corrupt data (https://github.com/flutter/flutter/issues/165610).
28 lines
868 B
Dart
28 lines
868 B
Dart
// 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 'dart:async';
|
|
import 'dart:io';
|
|
|
|
import 'package:args/command_runner.dart';
|
|
|
|
import 'package:flutter_devicelab/command/test.dart';
|
|
import 'package:flutter_devicelab/command/upload_metrics.dart';
|
|
|
|
final CommandRunner<void> runner =
|
|
CommandRunner<void>('devicelab_runner', 'DeviceLab test runner for recording test results')
|
|
..addCommand(TestCommand())
|
|
..addCommand(UploadMetricsCommand());
|
|
|
|
Future<void> main(List<String> rawArgs) async {
|
|
unawaited(
|
|
runner.run(rawArgs).catchError((dynamic error) {
|
|
stderr.writeln('$error\n');
|
|
stderr.writeln('Usage:\n');
|
|
stderr.writeln(runner.usage);
|
|
exit(64); // Exit code 64 indicates a usage error.
|
|
}),
|
|
);
|
|
}
|