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

Side by Side Diff: pkg/analyzer/test/src/dart/analysis/base.dart

Issue 2517263002: Extract BaseAnalysisDriverTest. (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 unified diff | Download patch
« no previous file with comments | « no previous file | pkg/analyzer/test/src/dart/analysis/driver_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 import 'dart:async';
6
7 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/file_system/memory_file_system.dart';
9 import 'package:analyzer/source/package_map_resolver.dart';
10 import 'package:analyzer/src/dart/analysis/byte_store.dart';
11 import 'package:analyzer/src/dart/analysis/driver.dart';
12 import 'package:analyzer/src/dart/analysis/file_state.dart';
13 import 'package:analyzer/src/dart/analysis/status.dart';
14 import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
15 import 'package:analyzer/src/generated/source.dart';
16
17 import '../../context/mock_sdk.dart';
18
19 class BaseAnalysisDriverTest {
20 static final MockSdk sdk = new MockSdk();
21
22 final MemoryResourceProvider provider = new MemoryResourceProvider();
23 final ByteStore byteStore = new MemoryByteStore();
24 final FileContentOverlay contentOverlay = new FileContentOverlay();
25
26 final StringBuffer logBuffer = new StringBuffer();
27 PerformanceLog logger;
28
29 AnalysisDriverScheduler scheduler;
30 AnalysisDriver driver;
31 final _Monitor idleStatusMonitor = new _Monitor();
32 final List<AnalysisStatus> allStatuses = <AnalysisStatus>[];
33 final List<AnalysisResult> allResults = <AnalysisResult>[];
34
35 String testProject;
36 String testFile;
37 String testCode;
38
39 void addTestFile(String content, {bool priority: false}) {
40 testCode = content;
41 provider.newFile(testFile, content);
42 driver.addFile(testFile);
43 if (priority) {
44 driver.priorityFiles = [testFile];
45 }
46 }
47
48 void setUp() {
49 new MockSdk();
50 testProject = _p('/test/lib');
51 testFile = _p('/test/lib/test.dart');
52 logger = new PerformanceLog(logBuffer);
53 scheduler = new AnalysisDriverScheduler(logger);
54 driver = new AnalysisDriver(
55 scheduler,
56 logger,
57 provider,
58 byteStore,
59 contentOverlay,
60 new SourceFactory([
61 new DartUriResolver(sdk),
62 new PackageMapUriResolver(provider, <String, List<Folder>>{
63 'test': [provider.getFolder(testProject)]
64 }),
65 new ResourceUriResolver(provider)
66 ], null, provider),
67 new AnalysisOptionsImpl()..strongMode = true);
68 scheduler.start();
69 driver.status.lastWhere((status) {
70 allStatuses.add(status);
71 if (status.isIdle) {
72 idleStatusMonitor.notify();
73 }
74 });
75 driver.results.listen(allResults.add);
76 }
77
78 String _p(String path) => provider.convertPath(path);
79 }
80
81 class _Monitor {
82 Completer<Null> _completer = new Completer<Null>();
83
84 Future<Null> get signal async {
85 await _completer.future;
86 _completer = new Completer<Null>();
87 }
88
89 void notify() {
90 if (!_completer.isCompleted) {
91 _completer.complete(null);
92 }
93 }
94 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/src/dart/analysis/driver_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698