Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Unified Diff: pkg/analysis_server/test/abstract_context.dart

Issue 2572203002: Add completion tests for the new analysis driver. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/abstract_context.dart
diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart
index 2b7a648a1351c60fd68b2ea1cfaba52a779ed838..6375766f0757320dcfa7e5218af6aa8e00d755d9 100644
--- a/pkg/analysis_server/test/abstract_context.dart
+++ b/pkg/analysis_server/test/abstract_context.dart
@@ -11,7 +11,11 @@ import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/source/package_map_resolver.dart';
+import 'package:analyzer/src/dart/analysis/byte_store.dart';
+import 'package:analyzer/src/dart/analysis/driver.dart';
+import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/generated/engine.dart';
+import 'package:analyzer/src/generated/engine.dart' as engine;
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source_io.dart';
@@ -46,7 +50,31 @@ class AbstractContextTest {
MemoryResourceProvider provider;
Map<String, List<Folder>> packageMap;
UriResolver resourceResolver;
- AnalysisContext context;
+
+ AnalysisContext _context;
+
+ StringBuffer _logBuffer = new StringBuffer();
+ FileContentOverlay _fileContentOverlay = new FileContentOverlay();
+ AnalysisDriver _driver;
+
+ AnalysisContext get context {
+ if (enableNewAnalysisDriver) {
+ throw new StateError('Should not be used with the new analysis driver.');
+ }
+ return _context;
+ }
+
+ AnalysisDriver get driver {
+ if (enableNewAnalysisDriver) {
+ return _driver;
+ }
+ throw new StateError('Should be used with the new analysis driver.');
+ }
+
+ /**
+ * Return `true` if the new analysis driver should be used by these tests.
+ */
+ bool get enableNewAnalysisDriver => false;
Source addPackageSource(String packageName, String filePath, String content) {
packageMap[packageName] = [(newFolder('/pubcache/$packageName'))];
@@ -55,13 +83,18 @@ class AbstractContextTest {
}
Source addSource(String path, String content, [Uri uri]) {
- File file = newFile(path, content);
- Source source = file.createSource(uri);
- ChangeSet changeSet = new ChangeSet();
- changeSet.addedSource(source);
- context.applyChanges(changeSet);
- context.setContents(source, content);
- return source;
+ if (enableNewAnalysisDriver) {
+ _fileContentOverlay[path] = content;
+ return null;
+ } else {
+ File file = newFile(path, content);
+ Source source = file.createSource(uri);
+ ChangeSet changeSet = new ChangeSet();
+ changeSet.addedSource(source);
+ context.applyChanges(changeSet);
+ context.setContents(source, content);
+ return source;
+ }
}
File newFile(String path, [String content]) =>
@@ -75,7 +108,7 @@ class AbstractContextTest {
*/
void performAllAnalysisTasks() {
while (true) {
- AnalysisResult result = context.performAnalysisTask();
+ engine.AnalysisResult result = context.performAnalysisTask();
if (!result.hasMoreWork) {
break;
}
@@ -101,9 +134,24 @@ class AbstractContextTest {
packageMap = new Map<String, List<Folder>>();
PackageMapUriResolver packageResolver =
new PackageMapUriResolver(provider, packageMap);
- context = AnalysisEngine.instance.createAnalysisContext();
- context.sourceFactory =
+ SourceFactory sourceFactory =
new SourceFactory([SDK_RESOLVER, packageResolver, resourceResolver]);
+ if (enableNewAnalysisDriver) {
+ PerformanceLog log = new PerformanceLog(_logBuffer);
+ AnalysisDriverScheduler scheduler = new AnalysisDriverScheduler(log);
+ _driver = new AnalysisDriver(
+ scheduler,
+ log,
+ provider,
+ new MemoryByteStore(),
+ _fileContentOverlay,
+ sourceFactory,
+ new AnalysisOptionsImpl());
+ scheduler.start();
+ } else {
+ _context = AnalysisEngine.instance.createAnalysisContext();
+ context.sourceFactory = sourceFactory;
+ }
AnalysisEngine.instance.logger = PrintLogger.instance;
}
@@ -112,7 +160,7 @@ class AbstractContextTest {
}
void tearDown() {
- context = null;
+ _context = null;
provider = null;
AnalysisEngine.instance.logger = null;
}
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698