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

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

Issue 1525623003: CLI driver test re-enablement (#25001). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years 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 | « pkg/analyzer_cli/test/all.dart ('k') | no next file » | 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 e6bd81224131387dcb63218e4be07d50ee78cc5f..e520039cba20bed6f45a3ea379e0122522a65bb4 100644
--- a/pkg/analyzer_cli/test/driver_test.dart
+++ b/pkg/analyzer_cli/test/driver_test.dart
@@ -21,37 +21,37 @@ import 'package:plugin/plugin.dart';
import 'package:unittest/unittest.dart';
import 'package:yaml/src/yaml_node.dart';
-// TODO(pq): fix tests to run safely on the bots
-// https://github.com/dart-lang/sdk/issues/25001
-main() {}
-const emptyOptionsFile = 'test/data/empty_options.yaml';
+import 'utils.dart';
-/// Start a driver for the given [source], optionally providing additional
-/// [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>[]}) =>
- new Driver().start(['--options', options, source]..addAll(args));
+main() {
+ StringSink savedOutSink, savedErrorSink;
+ int savedExitCode;
+ ExitHandler savedExitHandler;
+
+ /// Base setup.
+ _setUp() {
+ savedOutSink = outSink;
+ savedErrorSink = errorSink;
+ savedExitHandler = exitHandler;
+ savedExitCode = exitCode;
+ exitHandler = (code) => exitCode = code;
+ outSink = new StringBuffer();
+ errorSink = new StringBuffer();
+ }
-not_main() {
- group('Driver', () {
- StringSink savedOutSink, savedErrorSink;
- int savedExitCode;
- setUp(() {
- savedOutSink = outSink;
- savedErrorSink = errorSink;
- savedExitCode = exitCode;
- outSink = new StringBuffer();
- errorSink = new StringBuffer();
- });
- tearDown(() {
- outSink = savedOutSink;
- errorSink = savedErrorSink;
- exitCode = savedExitCode;
- });
+ /// Base teardown.
+ _tearDown() {
+ outSink = savedOutSink;
+ errorSink = savedErrorSink;
+ exitCode = savedExitCode;
+ exitHandler = savedExitHandler;
+ }
+
+ setUp(() => _setUp());
+ tearDown(() => _tearDown());
+
+ group('Driver', () {
group('options', () {
test('custom processor', () {
Driver driver = new Driver();
@@ -59,79 +59,61 @@ not_main() {
driver.userDefinedPlugins = [new TestPlugin(processor)];
driver.start([
'--options',
- 'test/data/test_options.yaml',
- 'test/data/test_file.dart'
+ path.join(testDirectory, 'data/test_options.yaml'),
+ path.join(testDirectory, 'data/test_file.dart')
]);
expect(processor.options['test_plugin'], isNotNull);
expect(processor.exception, isNull);
});
});
+ //TODO(pq): refactor to NOT set actual error codes to play nice with bots
group('exit codes', () {
- StringSink savedOutSink, savedErrorSink;
- int savedExitCode;
- ExitHandler savedExitHandler;
- setUp(() {
- savedOutSink = outSink;
- savedErrorSink = errorSink;
- savedExitCode = exitCode;
- savedExitHandler = exitHandler;
- exitHandler = (code) => exitCode = code;
- outSink = new StringBuffer();
- errorSink = new StringBuffer();
- });
- tearDown(() {
- outSink = savedOutSink;
- errorSink = savedErrorSink;
- exitCode = savedExitCode;
- exitHandler = savedExitHandler;
- });
-
test('fatal hints', () {
- drive('test/data/file_with_hint.dart', args: ['--fatal-hints']);
+ drive('data/file_with_hint.dart', args: ['--fatal-hints']);
expect(exitCode, 3);
});
test('not fatal hints', () {
- drive('test/data/file_with_hint.dart');
+ drive('data/file_with_hint.dart');
expect(exitCode, 0);
});
test('fatal errors', () {
- drive('test/data/file_with_error.dart');
+ drive('data/file_with_error.dart');
expect(exitCode, 3);
});
test('not fatal warnings', () {
- drive('test/data/file_with_warning.dart');
+ drive('data/file_with_warning.dart');
expect(exitCode, 0);
});
test('fatal warnings', () {
- drive('test/data/file_with_warning.dart', args: ['--fatal-warnings']);
+ drive('data/file_with_warning.dart', args: ['--fatal-warnings']);
expect(exitCode, 3);
});
test('missing options file', () {
- drive('test/data/test_file.dart', options: 'test/data/NO_OPTIONS_HERE');
+ drive('data/test_file.dart', options: 'data/NO_OPTIONS_HERE');
expect(exitCode, 3);
});
test('missing dart file', () {
- drive('test/data/NO_DART_FILE_HERE.dart');
+ drive('data/NO_DART_FILE_HERE.dart');
expect(exitCode, 3);
});
test('part file', () {
- drive('test/data/library_and_parts/part2.dart');
+ drive('data/library_and_parts/part2.dart');
expect(exitCode, 3);
});
test('non-dangling part file', () {
Driver driver = new Driver();
driver.start([
- 'test/data/library_and_parts/lib.dart',
- 'test/data/library_and_parts/part1.dart',
+ path.join(testDirectory, 'data/library_and_parts/lib.dart'),
+ path.join(testDirectory, 'data/library_and_parts/part1.dart')
]);
expect(exitCode, 0);
});
@@ -139,9 +121,9 @@ not_main() {
test('extra part file', () {
Driver driver = new Driver();
driver.start([
- 'test/data/library_and_parts/lib.dart',
- 'test/data/library_and_parts/part1.dart',
- 'test/data/library_and_parts/part2.dart',
+ 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')
]);
expect(exitCode, 3);
});
@@ -149,26 +131,14 @@ not_main() {
group('linter', () {
group('lints in options', () {
- StringSink savedOutSink;
- Driver driver;
-
- setUp(() {
- savedOutSink = outSink;
- outSink = new StringBuffer();
-
- driver = new Driver();
- driver.start([
- '--options',
- 'test/data/linter_project/.analysis_options',
- '--lints',
- 'test/data/linter_project/test_file.dart'
- ]);
- });
- tearDown(() {
- outSink = savedOutSink;
- });
+ // Shared lint command.
+ var runLinter = () => drive('data/linter_project/test_file.dart',
+ options: 'data/linter_project/.analysis_options',
+ args: ['--lints']);
test('gets analysis options', () {
+ runLinter();
+
/// Lints should be enabled.
expect(driver.context.analysisOptions.lint, isTrue);
@@ -178,32 +148,21 @@ not_main() {
});
test('generates lints', () {
+ runLinter();
expect(outSink.toString(),
contains('[lint] Name types using UpperCamelCase.'));
});
});
group('default lints', () {
- StringSink savedOutSink;
- Driver driver;
-
- setUp(() {
- savedOutSink = outSink;
- outSink = new StringBuffer();
-
- driver = new Driver();
- driver.start([
- '--lints',
- 'test/data/linter_project/test_file.dart',
- '--options',
- 'test/data/linter_project/.analysis_options'
- ]);
- });
- tearDown(() {
- outSink = savedOutSink;
- });
+ // Shared lint command.
+ var runLinter = () => drive('data/linter_project/test_file.dart',
+ options: 'data/linter_project/.analysis_options',
+ args: ['--lints']);
test('gets default lints', () {
+ runLinter();
+
/// Lints should be enabled.
expect(driver.context.analysisOptions.lint, isTrue);
@@ -213,39 +172,29 @@ not_main() {
});
test('generates lints', () {
+ runLinter();
expect(outSink.toString(),
contains('[lint] Name types using UpperCamelCase.'));
});
});
group('no `--lints` flag (none in options)', () {
- StringSink savedOutSink;
- Driver driver;
-
- setUp(() {
- savedOutSink = outSink;
- outSink = new StringBuffer();
-
- driver = new Driver();
- driver.start([
- 'test/data/no_lints_project/test_file.dart',
- '--options',
- 'test/data/no_lints_project/.analysis_options'
- ]);
- });
- tearDown(() {
- outSink = savedOutSink;
- });
+ // Shared lint command.
+ var runLinter = () => drive('data/no_lints_project/test_file.dart',
+ options: 'data/no_lints_project/.analysis_options');
test('lints disabled', () {
+ runLinter();
expect(driver.context.analysisOptions.lint, isFalse);
});
test('no registered lints', () {
+ runLinter();
expect(getLints(driver.context), isEmpty);
});
test('no generated warnings', () {
+ runLinter();
expect(outSink.toString(), contains('No issues found'));
});
});
@@ -277,26 +226,13 @@ linter:
});
group('options processing', () {
- group('error filters', () {
- StringSink savedOutSink;
- Driver driver;
-
- setUp(() {
- savedOutSink = outSink;
- outSink = new StringBuffer();
-
- driver = new Driver();
- driver.start([
- 'test/data/options_tests_project/test_file.dart',
- '--options',
- 'test/data/options_tests_project/.analysis_options'
- ]);
- });
- tearDown(() {
- outSink = savedOutSink;
- });
+ // Shared driver command.
+ var doDrive = () => drive('data/options_tests_project/test_file.dart',
+ options: 'data/options_tests_project/.analysis_options');
+ group('error filters', () {
test('filters', () {
+ doDrive();
var processors =
driver.context.getConfigurationData(CONFIGURED_ERROR_PROCESSORS);
expect(processors, hasLength(1));
@@ -312,31 +248,26 @@ linter:
});
test('language config', () {
+ doDrive();
expect(driver.context.analysisOptions.enableSuperMixins, isTrue);
});
});
});
group('in temp directory', () {
- StringSink savedOutSink, savedErrorSink;
- int savedExitCode;
Directory savedCurrentDirectory;
Directory tempDir;
setUp(() {
- savedOutSink = outSink;
- savedErrorSink = errorSink;
- savedExitCode = exitCode;
- outSink = new StringBuffer();
- errorSink = new StringBuffer();
+ // Call base setUp.
+ _setUp();
savedCurrentDirectory = Directory.current;
tempDir = Directory.systemTemp.createTempSync('analyzer_');
});
tearDown(() {
- outSink = savedOutSink;
- errorSink = savedErrorSink;
- exitCode = savedExitCode;
Directory.current = savedCurrentDirectory;
tempDir.deleteSync(recursive: true);
+ // Call base tearDown.
+ _tearDown();
});
test('packages folder', () {
@@ -386,20 +317,12 @@ main() {}
});
group('Bootloader', () {
group('plugin processing', () {
- StringSink savedErrorSink;
- setUp(() {
- savedErrorSink = errorSink;
- errorSink = new StringBuffer();
- });
- tearDown(() {
- errorSink = savedErrorSink;
- });
test('bad format', () {
BootLoader loader = new BootLoader();
loader.createImage([
'--options',
- 'test/data/bad_plugin_options.yaml',
- 'test/data/test_file.dart'
+ path.join(testDirectory, 'data/bad_plugin_options.yaml'),
+ path.join(testDirectory, 'data/test_file.dart')
]);
expect(
errorSink.toString(),
@@ -411,8 +334,8 @@ main() {}
BootLoader loader = new BootLoader();
Image image = loader.createImage([
'--options',
- 'test/data/plugin_options.yaml',
- 'test/data/test_file.dart'
+ path.join(testDirectory, 'data/plugin_options.yaml'),
+ path.join(testDirectory, 'data/test_file.dart')
]);
var plugins = image.config.plugins;
expect(plugins, hasLength(1));
@@ -444,6 +367,26 @@ main() {}
});
}
+const emptyOptionsFile = 'data/empty_options.yaml';
+
+/// Shared driver.
+Driver driver;
+
+/// Start a driver for the given [source], optionally providing additional
+/// [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>[]}) {
+ driver = new Driver();
+ var cmd = [
+ '--options',
+ path.join(testDirectory, options),
+ path.join(testDirectory, source)
+ ]..addAll(args);
+ driver.start(cmd);
+}
+
Map<String, YamlNode> parseOptions(String src) =>
new AnalysisOptionsProvider().getOptionsFromString(src);
« no previous file with comments | « pkg/analyzer_cli/test/all.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698