From aa6cc07164373dd86a9f9c4c189ae846d4a3c6ae Mon Sep 17 00:00:00 2001 From: Ian Hickson Date: Fri, 12 Jul 2019 17:10:13 -0700 Subject: [PATCH] Be clearer about errors in customer testing script (#36098) --- dev/customer_testing/run_tests.dart | 34 +++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/dev/customer_testing/run_tests.dart b/dev/customer_testing/run_tests.dart index 9d0b62ea7d..0a8ab196dd 100644 --- a/dev/customer_testing/run_tests.dart +++ b/dev/customer_testing/run_tests.dart @@ -47,7 +47,23 @@ Future run(List arguments) async { help: 'Print this help message.', ); - final ArgResults parsedArguments = argParser.parse(arguments); + void printHelp() { + print('run_tests.dart [options...] path/to/file1.test path/to/file2.test...'); + print('For details on the test registry format, see:'); + print(' https://github.com/flutter/tests/blob/master/registry/template.test'); + print(''); + print(argParser.usage); + print(''); + } + + ArgResults parsedArguments; + try { + parsedArguments = argParser.parse(arguments); + } on ArgParserException catch (error) { + printHelp(); + print('Error: ${error.message} Use --help for usage information.'); + exit(1); + } final int repeat = int.tryParse(parsedArguments['repeat']); final bool skipOnFetchFailure = parsedArguments['skip-on-fetch-failure']; @@ -62,12 +78,16 @@ Future run(List arguments) async { .toList(); if (help || repeat == null || files.isEmpty) { - print('run_tests.dart [options...] path/to/file1.test path/to/file2.test...'); - print('For details on the test registry format, see:'); - print(' https://github.com/flutter/tests/blob/master/registry/template.test'); - print(''); - print(argParser.usage); - print(''); + printHelp(); + if (verbose) { + if (repeat == null) + print('Error: Could not parse repeat count ("${parsedArguments['repeat']}")'); + if (parsedArguments.rest.isEmpty) { + print('Error: No file arguments specified.'); + } else if (files.isEmpty) { + print('Error: File arguments ("${parsedArguments.rest.join("\", \"")}") did not identify any real files.'); + } + } return help; }