// Copyright (c) 2019, 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:test_runner/src/configuration.dart'; import 'package:test_runner/src/options.dart'; import 'package:test_runner/src/path.dart'; import 'package:test_runner/src/static_error.dart'; import 'package:test_runner/src/test_file.dart'; import 'package:test_runner/src/test_suite.dart'; TestFile parseTestFile(String source, {String path = "some_test.dart", String suite = "language"}) { final suiteDirectory = Path(suite); path = suiteDirectory.absolute.append(path).toNativePath(); return TestFile.parse(suiteDirectory.absolute, path, source); } // TODO(rnystrom): Would be nice if there was a simpler way to create a // configuration for use in unit tests. TestConfiguration makeConfiguration(List arguments, String suite) { return OptionsParser().parse([...arguments, suite]).first; } /// Creates a [StandardTestSuite] hardcoded to contain [testFiles]. StandardTestSuite makeTestSuite(TestConfiguration configuration, List testFiles, String suite) => _MockTestSuite(configuration, testFiles, suite); /// Creates a [StaticError]. /// /// Only one of [analyzerError], [cfeError], [webError], or [contextError] may /// be passed. StaticError makeError( {int line = 1, int column = 2, int length, String analyzerError, String cfeError, String webError, String contextError, List context}) { ErrorSource source; String message; if (analyzerError != null) { assert(cfeError == null); assert(webError == null); assert(contextError == null); source = ErrorSource.analyzer; message = analyzerError; } else if (cfeError != null) { assert(webError == null); assert(contextError == null); source = ErrorSource.cfe; message = cfeError; } else if (webError != null) { assert(contextError == null); source = ErrorSource.web; message = webError; } else { assert(contextError != null); source = ErrorSource.context; message = contextError; } var error = StaticError(source, message, line: line, column: column, length: length); if (context != null) error.contextMessages.addAll(context); return error; } class _MockTestSuite extends StandardTestSuite { final List _testFiles; _MockTestSuite(TestConfiguration configuration, this._testFiles, String suite) : super(configuration, suite, Path(suite), []); @override Iterable findTests() => _testFiles; }