Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Unified Diff: pkg/analyzer_cli/test/driver_test.dart

Issue 2658863002: Run analyzer_cli asynchronously. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analyzer_cli/test/embedder_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer_cli/test/driver_test.dart
diff --git a/pkg/analyzer_cli/test/driver_test.dart b/pkg/analyzer_cli/test/driver_test.dart
index 0c186399b725bf319da9274260ed608ceac03894..ca07498f2569546a1c067cee58b9cd006b90547e 100644
--- a/pkg/analyzer_cli/test/driver_test.dart
+++ b/pkg/analyzer_cli/test/driver_test.dart
@@ -4,6 +4,7 @@
library analyzer_cli.test.driver;
+import 'dart:async';
import 'dart:io';
import 'package:analyzer/error/error.dart';
@@ -51,65 +52,65 @@ main() {
group('Driver', () {
group('options', () {
- test('todos', () {
- drive('data/file_with_todo.dart');
+ test('todos', () async {
+ await drive('data/file_with_todo.dart');
expect(outSink.toString().contains('[info]'), isFalse);
});
});
group('exit codes', () {
- test('fatal hints', () {
- drive('data/file_with_hint.dart', args: ['--fatal-hints']);
+ test('fatal hints', () async {
+ await drive('data/file_with_hint.dart', args: ['--fatal-hints']);
expect(exitCode, 3);
});
- test('not fatal hints', () {
- drive('data/file_with_hint.dart');
+ test('not fatal hints', () async {
+ await drive('data/file_with_hint.dart');
expect(exitCode, 0);
});
- test('fatal errors', () {
- drive('data/file_with_error.dart');
+ test('fatal errors', () async {
+ await drive('data/file_with_error.dart');
expect(exitCode, 3);
});
- test('not fatal warnings', () {
- drive('data/file_with_warning.dart');
+ test('not fatal warnings', () async {
+ await drive('data/file_with_warning.dart');
expect(exitCode, 0);
});
- test('fatal warnings', () {
- drive('data/file_with_warning.dart', args: ['--fatal-warnings']);
+ test('fatal warnings', () async {
+ await drive('data/file_with_warning.dart', args: ['--fatal-warnings']);
expect(exitCode, 3);
});
- test('missing options file', () {
- drive('data/test_file.dart', options: 'data/NO_OPTIONS_HERE');
+ test('missing options file', () async {
+ await drive('data/test_file.dart', options: 'data/NO_OPTIONS_HERE');
expect(exitCode, 3);
});
- test('missing dart file', () {
- drive('data/NO_DART_FILE_HERE.dart');
+ test('missing dart file', () async {
+ await drive('data/NO_DART_FILE_HERE.dart');
expect(exitCode, 3);
});
- test('part file', () {
- drive('data/library_and_parts/part2.dart');
+ test('part file', () async {
+ await drive('data/library_and_parts/part2.dart');
expect(exitCode, 3);
});
- test('non-dangling part file', () {
+ test('non-dangling part file', () async {
Driver driver = new Driver();
- driver.start([
+ await driver.start([
path.join(testDirectory, 'data/library_and_parts/lib.dart'),
path.join(testDirectory, 'data/library_and_parts/part1.dart')
]);
expect(exitCode, 0);
});
- test('extra part file', () {
+ test('extra part file', () async {
Driver driver = new Driver();
- driver.start([
+ await driver.start([
path.join(testDirectory, 'data/library_and_parts/lib.dart'),
path.join(testDirectory, 'data/library_and_parts/part1.dart'),
path.join(testDirectory, 'data/library_and_parts/part2.dart')
@@ -122,12 +123,14 @@ main() {
void createTests(String designator, String optionsFileName) {
group('lints in options - $designator', () {
// Shared lint command.
- void runLinter() => drive('data/linter_project/test_file.dart',
- options: 'data/linter_project/$optionsFileName',
- args: ['--lints']);
+ Future<Null> runLinter() async {
+ return await drive('data/linter_project/test_file.dart',
+ options: 'data/linter_project/$optionsFileName',
+ args: ['--lints']);
+ }
- test('gets analysis options', () {
- runLinter();
+ test('gets analysis options', () async {
+ await runLinter();
/// Lints should be enabled.
expect(driver.context.analysisOptions.lint, isTrue);
@@ -137,8 +140,8 @@ main() {
expect(lintNames, orderedEquals(['camel_case_types']));
});
- test('generates lints', () {
- runLinter();
+ test('generates lints', () async {
+ await runLinter();
expect(outSink.toString(),
contains('[lint] Name types using UpperCamelCase.'));
});
@@ -146,12 +149,14 @@ main() {
group('default lints - $designator', () {
// Shared lint command.
- void runLinter() => drive('data/linter_project/test_file.dart',
- options: 'data/linter_project/$optionsFileName',
- args: ['--lints']);
+ Future<Null> runLinter() async {
+ return await drive('data/linter_project/test_file.dart',
+ options: 'data/linter_project/$optionsFileName',
+ args: ['--lints']);
+ }
- test('gets default lints', () {
- runLinter();
+ test('gets default lints', () async {
+ await runLinter();
/// Lints should be enabled.
expect(driver.context.analysisOptions.lint, isTrue);
@@ -161,8 +166,8 @@ main() {
expect(lintNames, contains('camel_case_types'));
});
- test('generates lints', () {
- runLinter();
+ test('generates lints', () async {
+ await runLinter();
expect(outSink.toString(),
contains('[lint] Name types using UpperCamelCase.'));
});
@@ -170,21 +175,23 @@ main() {
group('no `--lints` flag (none in options) - $designator', () {
// Shared lint command.
- void runLinter() => drive('data/no_lints_project/test_file.dart',
- options: 'data/no_lints_project/$optionsFileName');
+ Future<Null> runLinter() async {
+ return await drive('data/no_lints_project/test_file.dart',
+ options: 'data/no_lints_project/$optionsFileName');
+ }
- test('lints disabled', () {
- runLinter();
+ test('lints disabled', () async {
+ await runLinter();
expect(driver.context.analysisOptions.lint, isFalse);
});
- test('no registered lints', () {
- runLinter();
+ test('no registered lints', () async {
+ await runLinter();
expect(getLints(driver.context), isEmpty);
});
- test('no generated warnings', () {
- runLinter();
+ test('no generated warnings', () async {
+ await runLinter();
expect(outSink.toString(), contains('No issues found'));
});
});
@@ -223,11 +230,13 @@ linter:
void createTests(String designator, String optionsFileName) {
group('basic config - $designator', () {
// Shared driver command.
- void doDrive() => drive('data/options_tests_project/test_file.dart',
- options: 'data/options_tests_project/$optionsFileName');
+ Future<Null> doDrive() async {
+ await drive('data/options_tests_project/test_file.dart',
+ options: 'data/options_tests_project/$optionsFileName');
+ }
- test('filters', () {
- doDrive();
+ test('filters', () async {
+ await doDrive();
expect(processors, hasLength(3));
// unused_local_variable: ignore
@@ -251,13 +260,13 @@ linter:
outSink.toString(), contains("1 error and 1 warning found."));
});
- test('language', () {
- doDrive();
+ test('language', () async {
+ await doDrive();
expect(driver.context.analysisOptions.enableSuperMixins, isTrue);
});
- test('strongMode', () {
- doDrive();
+ test('strongMode', () async {
+ await doDrive();
expect(driver.context.analysisOptions.strongMode, isTrue);
//https://github.com/dart-lang/sdk/issues/26129
AnalysisContext sdkContext =
@@ -268,12 +277,14 @@ linter:
group('with flags - $designator', () {
// Shared driver command.
- void doDrive() => drive('data/options_tests_project/test_file.dart',
- args: ['--fatal-warnings'],
- options: 'data/options_tests_project/$optionsFileName');
+ Future<Null> doDrive() async {
+ await drive('data/options_tests_project/test_file.dart',
+ args: ['--fatal-warnings'],
+ options: 'data/options_tests_project/$optionsFileName');
+ }
- test('override fatal warning', () {
- doDrive();
+ test('override fatal warning', () async {
+ await doDrive();
// missing_return: error
var undefined_function = new AnalysisError(new TestSource(), 0, 1,
StaticTypeWarningCode.UNDEFINED_FUNCTION, [
@@ -293,10 +304,10 @@ linter:
createTests('old', AnalysisEngine.ANALYSIS_OPTIONS_FILE);
createTests('new', AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE);
- test('include directive', () {
+ test('include directive', () async {
String testDir = path.join(
testDirectory, 'data', 'options_include_directive_tests_project');
- drive(
+ await drive(
path.join(testDir, 'lib', 'test_file.dart'),
args: [
'--fatal-warnings',
@@ -316,8 +327,9 @@ linter:
void createTests(String designator, String optionsFileName) {
group('build-mode - $designator', () {
// Shared driver command.
- void doDrive(String filePath, {List<String> additionalArgs: const []}) {
- drive('file:///test_file.dart|$filePath',
+ Future<Null> doDrive(String filePath,
+ {List<String> additionalArgs: const []}) async {
+ await drive('file:///test_file.dart|$filePath',
args: [
'--dart-sdk',
findSdkDirForSummaries(),
@@ -327,8 +339,8 @@ linter:
options: 'data/options_tests_project/$optionsFileName');
}
- test('no stats', () {
- doDrive('data/test_file.dart');
+ test('no stats', () async {
+ await doDrive('data/test_file.dart');
// Should not print stat summary.
expect(outSink.toString(), isEmpty);
expect(errorSink.toString(), isEmpty);
@@ -337,21 +349,21 @@ linter:
test(
'Fails if file not found, even when --build-suppress-exit-code is given',
- () {
- doDrive('data/non_existent_file.dart',
+ () async {
+ await doDrive('data/non_existent_file.dart',
additionalArgs: ['--build-suppress-exit-code']);
expect(exitCode, isNot(0));
});
- test('Fails if there are errors', () {
- doDrive('data/file_with_error.dart');
+ test('Fails if there are errors', () async {
+ await doDrive('data/file_with_error.dart');
expect(exitCode, isNot(0));
});
test(
'Succeeds if there are errors, when --build-suppress-exit-code is given',
- () {
- doDrive('data/file_with_error.dart',
+ () async {
+ await doDrive('data/file_with_error.dart',
additionalArgs: ['--build-suppress-exit-code']);
expect(exitCode, 0);
});
@@ -446,15 +458,16 @@ String adjustFileSpec(String fileSpec) {
/// [args] and an [options] file path. The value of [options] defaults to
/// an empty options file to avoid unwanted configuration from an otherwise
/// discovered options file.
-void drive(String source,
- {String options: emptyOptionsFile, List<String> args: const <String>[]}) {
+Future<Null> drive(String source,
+ {String options: emptyOptionsFile,
+ List<String> args: const <String>[]}) async {
driver = new Driver();
var cmd = [
'--options',
path.join(testDirectory, options),
adjustFileSpec(source)
]..addAll(args);
- driver.start(cmd);
+ await driver.start(cmd);
}
/// Try to find a appropriate directory to pass to "--dart-sdk" that will
« no previous file with comments | « no previous file | pkg/analyzer_cli/test/embedder_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698