| Index: pkg/analyzer_cli/test/errors_reported_once_test.dart
|
| diff --git a/pkg/analyzer_cli/test/errors_reported_once_test.dart b/pkg/analyzer_cli/test/errors_reported_once_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2f7b575b461cf1034421e417ca1be35a24a71a27
|
| --- /dev/null
|
| +++ b/pkg/analyzer_cli/test/errors_reported_once_test.dart
|
| @@ -0,0 +1,57 @@
|
| +// Copyright (c) 2017, 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:io';
|
| +
|
| +import 'package:analyzer_cli/src/driver.dart';
|
| +import 'package:analyzer_cli/src/options.dart';
|
| +import 'package:path/path.dart' as path;
|
| +import 'package:test/test.dart';
|
| +import 'package:test_reflective_loader/test_reflective_loader.dart';
|
| +
|
| +import 'utils.dart';
|
| +
|
| +main() {
|
| + defineReflectiveTests(ErrorsReportedOnceTest);
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ErrorsReportedOnceTest {
|
| + StringSink savedOutSink, savedErrorSink;
|
| + int savedExitCode;
|
| + ExitHandler savedExitHandler;
|
| +
|
| + void setUp() {
|
| + savedOutSink = outSink;
|
| + savedErrorSink = errorSink;
|
| + savedExitHandler = exitHandler;
|
| + savedExitCode = exitCode;
|
| + exitHandler = (code) => exitCode = code;
|
| + outSink = new StringBuffer();
|
| + errorSink = new StringBuffer();
|
| + }
|
| +
|
| + void tearDown() {
|
| + outSink = savedOutSink;
|
| + errorSink = savedErrorSink;
|
| + exitCode = savedExitCode;
|
| + exitHandler = savedExitHandler;
|
| + }
|
| +
|
| + @failingTest // #25697
|
| + test_once() async {
|
| + String testDir = path.join(testDirectory, 'data', 'errors_reported_once');
|
| + Driver driver = new Driver();
|
| + await driver.start(
|
| + [path.join(testDir, 'foo.dart'), path.join(testDir, 'bar.dart')]);
|
| +
|
| + expect(exitCode, 0);
|
| +
|
| + // Ensure that we only have one copy of the error.
|
| + final String unusedWarning = 'Unused import';
|
| + String output = outSink.toString();
|
| + expect(output, contains(unusedWarning));
|
| + expect(unusedWarning.allMatches(output).toList(), hasLength(1));
|
| + }
|
| +}
|
|
|