a524f04c27
This also introduces CompletionResponsePrinter, which I'd like to use instead of fluent APIs. At some point I decided that using easy to produce, and easy to update expectations is better. Fluent API based tests are too magical and require too many helper extensions. Also, with textual dumps full actual results are visible, so it is easy to compare them with expectations. The missing key part for using textual dumps in completion tests, that I realized only recently, was filtering. So, we don't need to dump every available type, but we can focus on specifically named, or specifically filtered, entities. And configuration for `withX` flags lets us enable including features that are interesting for a particular test suite. Change-Id: I4a7f7ec99ed202333cf56cd3bb0dfec9ae5c39f0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257261 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
55 lines
2.0 KiB
Dart
55 lines
2.0 KiB
Dart
// Copyright (c) 2019, 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 'package:analyzer/file_system/file_system.dart';
|
|
import 'package:analyzer/file_system/physical_file_system.dart';
|
|
import 'package:analyzer_utilities/package_root.dart' as package_root;
|
|
import 'package:analyzer_utilities/verify_tests.dart';
|
|
import 'package:path/path.dart' as package_path;
|
|
|
|
void main() {
|
|
var provider = PhysicalResourceProvider.INSTANCE;
|
|
var packageRoot = provider.pathContext.normalize(package_root.packageRoot);
|
|
var pathToAnalyze = provider.pathContext.join(packageRoot, 'analysis_server');
|
|
var testDirPath = provider.pathContext.join(pathToAnalyze, 'test');
|
|
_VerifyTests(testDirPath, excludedPaths: [
|
|
(provider.pathContext.join(testDirPath, 'mock_packages'))
|
|
]).build();
|
|
}
|
|
|
|
class _VerifyTests extends VerifyTests {
|
|
_VerifyTests(super.testDirPath, {super.excludedPaths});
|
|
|
|
@override
|
|
bool isExpensive(Resource resource) => resource.shortName == 'integration';
|
|
|
|
@override
|
|
bool isOkAsAdditionalTestAllImport(Folder folder, String uri) {
|
|
final pathContext = folder.provider.pathContext;
|
|
|
|
if (folder.path == pathContext.join(testDirPath, 'lsp') &&
|
|
uri == '../src/lsp/lsp_packet_transformer_test.dart') {
|
|
// `lsp/test_all.dart` also runs this one test in `lsp/src` for
|
|
// convenience.
|
|
return true;
|
|
}
|
|
if (folder.path == testDirPath &&
|
|
uri == '../tool/spec/check_all_test.dart') {
|
|
// The topmost `test_all.dart` also runs this one test in `tool` for
|
|
// convenience.
|
|
return true;
|
|
}
|
|
|
|
// Allow for updating textual expectations.
|
|
if (package_path.url.basename(uri) == 'text_expectations.dart') {
|
|
if (folder.path ==
|
|
pathContext.join(testDirPath, 'services', 'completion', 'dart')) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return super.isOkAsAdditionalTestAllImport(folder, uri);
|
|
}
|
|
}
|