blob: fd75621ea73308b91c61663d9af42e3fa018efb8 [file] [log] [blame]
// Copyright (c) 2020, 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 'fasta.dart' as fasta;
const List<String> standardSuites = <String>[
const List<String> specialSuites = <String>[
Future<void> runStandardSuites([List<String>? args]) async {
// Assert that 'strong' is the first suite - we use the assumption below.
assert(standardSuites.first == 'weak', "Suite 'weak' most be the first.");
bool first = true;
for (String suite in standardSuites) {
List<String> tests = args == null
? [suite]
: arg) => '${suite}/$arg').toList();
await fasta.main([
// Only update comments in the first suite. Note that this only works
// if the first compilation is a full compilation, i.e. not outline,
// because comments are generated during body building and inference.
if (first) '-DupdateComments=true',
first = false;
Future<void> main(List<String> args) async {
if (args.isEmpty) {
await runStandardSuites();
for (String suite in specialSuites) {
await fasta.main(['testing', suite, '-DupdateExpectations=true']);
} else {
List<String> standardTests = <String>[];
for (String arg in args) {
bool isSpecial = false;
for (String suite in specialSuites) {
if (arg.startsWith('$suite/')) {
await fasta.main(['testing', arg, '-DupdateExpectations=true']);
isSpecial = true;
if (!isSpecial) {
if (standardTests.isNotEmpty) {
await runStandardSuites(args);