Migrate some of the base test classes in server

Change-Id: I010389d51d519968ce7c1ecd8da8811d036d9ab2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193830
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
Brian Wilkerson
2021-04-02 14:53:31 +00:00
committed by commit-bot@chromium.org
parent c2d660d161
commit 0f4943c22b
3 changed files with 39 additions and 43 deletions
+19 -20
View File
@@ -2,8 +2,6 @@
// 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.
// @dart = 2.9
import 'package:analyzer/dart/analysis/analysis_context.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/session.dart';
@@ -26,8 +24,8 @@ import 'package:meta/meta.dart';
import 'src/utilities/mock_packages.dart';
/// Finds an [Element] with the given [name].
Element findChildElement(Element root, String name, [ElementKind kind]) {
Element result;
Element? findChildElement(Element root, String name, [ElementKind? kind]) {
Element? result;
root.accept(_ElementVisitorFunctionWrapper((Element element) {
if (element.name != name) {
return;
@@ -49,11 +47,11 @@ class AbstractContextTest with ResourceProviderMixin {
final ByteStore _byteStore = MemoryByteStore();
final Map<String, String> _declaredVariables = {};
AnalysisContextCollectionImpl _analysisContextCollection;
AnalysisContextCollectionImpl? _analysisContextCollection;
List<AnalysisDriver> get allDrivers {
_createAnalysisContexts();
return _analysisContextCollection.contexts.map((e) => e.driver).toList();
return _analysisContextCollection!.contexts.map((e) => e.driver).toList();
}
/// The file system specific `/home/test/analysis_options.yaml` path.
@@ -73,7 +71,7 @@ class AbstractContextTest with ResourceProviderMixin {
AnalysisSession get session => contextFor('/home/test').currentSession;
String get testPackageLanguageVersion => '2.9';
String? get testPackageLanguageVersion => '2.9';
String get testPackageLibPath => '$testPackageRootPath/lib';
@@ -107,9 +105,9 @@ class AbstractContextTest with ResourceProviderMixin {
/// Create an analysis options file based on the given arguments.
void createAnalysisOptionsFile({
List<String> experiments,
bool implicitCasts,
List<String> lints,
List<String>? experiments,
bool? implicitCasts,
List<String>? lints,
}) {
var buffer = StringBuffer();
@@ -147,16 +145,16 @@ class AbstractContextTest with ResourceProviderMixin {
/// Return the existing analysis context that should be used to analyze the
/// given [path], or throw [StateError] if the [path] is not analyzed in any
/// of the created analysis contexts.
AnalysisContext getContext(String path) {
DriverBasedAnalysisContext getContext(String path) {
path = convertPath(path);
return _analysisContextCollection.contextFor(path);
return _analysisContextCollection!.contextFor(path);
}
/// Return the existing analysis driver that should be used to analyze the
/// given [path], or throw [StateError] if the [path] is not analyzed in any
/// of the created analysis contexts.
AnalysisDriver getDriver(String path) {
DriverBasedAnalysisContext context = getContext(path);
var context = getContext(path);
return context.driver;
}
@@ -210,8 +208,8 @@ class AbstractContextTest with ResourceProviderMixin {
}
void writeTestPackageConfig({
PackageConfigFileBuilder config,
String languageVersion,
PackageConfigFileBuilder? config,
String? languageVersion,
bool flutter = false,
bool meta = false,
bool vector_math = false,
@@ -254,7 +252,7 @@ class AbstractContextTest with ResourceProviderMixin {
}
void _addAnalyzedFilesToDrivers() {
for (var analysisContext in _analysisContextCollection.contexts) {
for (var analysisContext in _analysisContextCollection!.contexts) {
for (var path in analysisContext.contextRoot.analyzedFiles()) {
if (file_paths.isDart(resourceProvider.pathContext, path)) {
analysisContext.driver.addFile(path);
@@ -264,8 +262,9 @@ class AbstractContextTest with ResourceProviderMixin {
}
void _addAnalyzedFileToDrivers(String path) {
if (_analysisContextCollection != null) {
for (var analysisContext in _analysisContextCollection.contexts) {
var collection = _analysisContextCollection;
if (collection != null) {
for (var analysisContext in collection.contexts) {
if (analysisContext.contextRoot.isAnalyzed(path)) {
analysisContext.driver.addFile(path);
}
@@ -277,7 +276,7 @@ class AbstractContextTest with ResourceProviderMixin {
_createAnalysisContexts();
path = convertPath(path);
return _analysisContextCollection.contextFor(path);
return _analysisContextCollection!.contextFor(path);
}
/// Create all analysis contexts in [collectionIncludedPaths].
@@ -302,7 +301,7 @@ class AbstractContextTest with ResourceProviderMixin {
mixin WithNonFunctionTypeAliasesMixin on AbstractContextTest {
@override
String get testPackageLanguageVersion => null;
String? get testPackageLanguageVersion => null;
@override
void setUp() {
@@ -2,8 +2,6 @@
// 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.
// @dart = 2.9
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
@@ -23,14 +21,14 @@ class AbstractSingleUnitTest extends AbstractContextTest {
/// Whether to rewrite line endings in test code based on platform.
bool useLineEndingsForPlatform = false;
String testCode;
String testFile;
ResolvedUnitResult testAnalysisResult;
CompilationUnit testUnit;
CompilationUnitElement testUnitElement;
LibraryElement testLibraryElement;
FindNode findNode;
FindElement findElement;
late String testCode;
late String testFile;
ResolvedUnitResult? testAnalysisResult;
late CompilationUnit testUnit;
late CompilationUnitElement testUnitElement;
late LibraryElement testLibraryElement;
late FindNode findNode;
late FindElement findElement;
@override
void addSource(String path, String content) {
@@ -72,11 +70,12 @@ class AbstractSingleUnitTest extends AbstractContextTest {
}
Future<void> resolveTestFile() async {
testAnalysisResult = await session.getResolvedUnit(testFile);
testCode = testAnalysisResult.content;
testUnit = testAnalysisResult.unit;
var result = await session.getResolvedUnit(testFile);
testAnalysisResult = result;
testCode = result.content!;
testUnit = result.unit!;
if (verifyNoTestUnitErrors) {
expect(testAnalysisResult.errors.where((AnalysisError error) {
expect(result.errors.where((AnalysisError error) {
return error.errorCode != HintCode.DEAD_CODE &&
error.errorCode != HintCode.UNUSED_CATCH_CLAUSE &&
error.errorCode != HintCode.UNUSED_CATCH_STACK &&
@@ -86,7 +85,7 @@ class AbstractSingleUnitTest extends AbstractContextTest {
error.errorCode != HintCode.UNUSED_LOCAL_VARIABLE;
}), isEmpty);
}
testUnitElement = testUnit.declaredElement;
testUnitElement = testUnit.declaredElement!;
testLibraryElement = testUnitElement.library;
findNode = FindNode(testCode, testUnit);
findElement = FindElement(testUnit);
@@ -2,8 +2,6 @@
// 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.
// @dart = 2.9
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
@@ -59,13 +57,13 @@ class BazelMockPackages {
Folder _addFiles(MemoryResourceProvider provider, String packageName) {
var packagesPath = provider.convertPath('/workspace/third_party/dart');
for (var relativePosixPath in _cachedFiles.keys) {
for (var entry in _cachedFiles.entries) {
var relativePosixPath = entry.key;
var relativePathComponents = relativePosixPath.split('/');
if (relativePathComponents[0] == packageName) {
var relativePath = provider.pathContext.joinAll(relativePathComponents);
var path = provider.pathContext.join(packagesPath, relativePath);
var content = _cachedFiles[relativePosixPath];
provider.newFile(path, content);
provider.newFile(path, entry.value);
}
}
@@ -114,13 +112,13 @@ class MockPackages {
Folder _addFiles(MemoryResourceProvider provider, String packageName) {
var packagesPath = provider.convertPath('/packages');
for (var relativePosixPath in _cachedFiles.keys) {
for (var entry in _cachedFiles.entries) {
var relativePosixPath = entry.key;
var relativePathComponents = relativePosixPath.split('/');
if (relativePathComponents[0] == packageName) {
var relativePath = provider.pathContext.joinAll(relativePathComponents);
var path = provider.pathContext.join(packagesPath, relativePath);
var content = _cachedFiles[relativePosixPath];
provider.newFile(path, content);
provider.newFile(path, entry.value);
}
}