ec282eb726
R=brianwilkerson@google.com, paulberry@google.com BUG= Review URL: https://codereview.chromium.org/2395183002 .
75 lines
1.9 KiB
Dart
75 lines
1.9 KiB
Dart
import 'dart:io' show exitCode;
|
|
|
|
import 'package:analyzer_cli/src/driver.dart' show Driver, outSink, errorSink;
|
|
import 'package:analyzer_cli/src/options.dart' show ExitHandler, exitHandler;
|
|
import 'package:path/path.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'utils.dart' show testDirectory;
|
|
|
|
main() {
|
|
group('--x-package-warnings-prefix', () {
|
|
_Runner runner;
|
|
|
|
setUp(() {
|
|
runner = new _Runner.setUp();
|
|
});
|
|
|
|
tearDown(() {
|
|
runner.tearDown();
|
|
runner = null;
|
|
});
|
|
|
|
test('shows only the hint whose package matches the prefix', () {
|
|
runner.run([
|
|
"--packages",
|
|
join(testDirectory, 'data', 'package_prefix', 'packagelist'),
|
|
"--x-package-warnings-prefix=f",
|
|
join(testDirectory, 'data', 'package_prefix', 'main.dart')
|
|
]);
|
|
expect(runner.stdout, contains('1 hint found'));
|
|
expect(runner.stdout, contains('Unused import'));
|
|
expect(runner.stdout,
|
|
contains(join('package_prefix', 'pkg', 'foo', 'foo.dart')));
|
|
expect(runner.stdout, isNot(contains('bar.dart')));
|
|
});
|
|
});
|
|
}
|
|
|
|
class _Runner {
|
|
final _stdout = new StringBuffer();
|
|
final _stderr = new StringBuffer();
|
|
|
|
final StringSink _savedOutSink;
|
|
final StringSink _savedErrorSink;
|
|
final int _savedExitCode;
|
|
final ExitHandler _savedExitHandler;
|
|
|
|
_Runner.setUp()
|
|
: _savedOutSink = outSink,
|
|
_savedErrorSink = errorSink,
|
|
_savedExitHandler = exitHandler,
|
|
_savedExitCode = exitCode {
|
|
outSink = _stdout;
|
|
errorSink = _stderr;
|
|
exitHandler = (_) {};
|
|
}
|
|
|
|
String get stderr => _stderr.toString();
|
|
|
|
String get stdout => _stdout.toString();
|
|
void run(List<String> args) {
|
|
new Driver().start(args);
|
|
if (stderr.isNotEmpty) {
|
|
fail("Unexpected output to stderr:\n$stderr");
|
|
}
|
|
}
|
|
|
|
void tearDown() {
|
|
outSink = _savedOutSink;
|
|
errorSink = _savedErrorSink;
|
|
exitCode = _savedExitCode;
|
|
exitHandler = _savedExitHandler;
|
|
}
|
|
}
|