dart-sdk/tools/bisect.dart

11 lines
361 B
Dart
Raw Normal View History

[tool] Bisection tool A basic bisection script. Currently only supports substring matching for detecting the error. This was enough for three use cases today: * https://github.com/dart-lang/sdk/issues/52910 * https://github.com/dart-lang/sdk/issues/52911 * https://github.com/dart-lang/sdk/issues/52912 Produces a concise output on standard out, and a very detailed log with all process invocation results in `.dart_tool/bisect_dart`. Usage: tools/bisect.dart -Dstart=23f41452 -Dend=2c97bd78 -Dtest_command="tools/test.py --build -n dartk-linux-debug-x64 lib_2/isolate/package_resolve_test" -Dfailure_string="Error: The argument type 'String' can't be assigned to the parameter type 'Uri'." -Dsdk_path=/usr/local/google/home/dacoharkes/dart-sdk/sdk/ -Dname=20230712_package_resolve_test This script starts a bisection in the provided SDK path. It will write logs to .dart_tool/bisect_dart/. start : The commit has at the start of the commit range. end : The commit has at the end of the commit range. test_command : The invocation of test.py. This should include `--build`. This should be within quotes when passed in terminal because of spaces. failure_string : A string from the failing output. Regexes are not yet supported. This should be within quotes when passed in terminal when containing spaces. sdk_path : The SDK path is optional. The SDK path defaults to the current working directory. name : The name is optional. The name defaults to the current date and the recognized test name. The name is used for distinguishing logs. Change-Id: Ib071a5305d4992cf189e35eb3dcc50c83101503e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/313384 Commit-Queue: Daco Harkes <dacoharkes@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com>
2023-07-13 13:22:26 +00:00
#!/usr/bin/env dart
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. 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:bisect_dart/src/run_bisection.dart';
Future<void> main(List<String> args) async {
await runMain(args);
}