18844b85ec
Change-Id: I008589455681dd5da80df4e466803f8cf48cd910 Reviewed-on: https://dart-review.googlesource.com/c/88435 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
81 lines
2.2 KiB
Dart
81 lines
2.2 KiB
Dart
// Copyright (c) 2016, 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 'dart:async';
|
|
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', () async {
|
|
await runner.run2([
|
|
"--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();
|
|
|
|
Future<void> run2(List<String> args) async {
|
|
await new Driver(isTesting: true).start(args);
|
|
if (stderr.isNotEmpty) {
|
|
fail("Unexpected output to stderr:\n$stderr");
|
|
}
|
|
}
|
|
|
|
void tearDown() {
|
|
outSink = _savedOutSink;
|
|
errorSink = _savedErrorSink;
|
|
exitCode = _savedExitCode;
|
|
exitHandler = _savedExitHandler;
|
|
}
|
|
}
|