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

Side by Side Diff: pkg/front_end/test/src/incremental/mock_sdk.dart

Issue 2993093003: Add support for SDK outline in KernelDriver. (Closed)
Patch Set: Merge and tweaks. Created 3 years, 4 months 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 | « pkg/front_end/test/src/incremental/kernel_driver_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'package:front_end/memory_file_system.dart'; 5 import 'package:front_end/memory_file_system.dart';
6 import 'package:front_end/src/base/libraries_specification.dart'; 6 import 'package:front_end/src/base/libraries_specification.dart';
7 7
8 /// Create SDK libraries which are used by Fasta to perform kernel generation. 8 final _ASYNC = r'''
9 /// The root of the SDK is `file:///sdk`, it will contain a libraries 9 library dart.async;
10 /// specification file at `lib/libraries.json`.
11 ///
12 /// Returns the [TargetLibrariesSpecification] whose contents are in
13 /// libraries.json.
14 TargetLibrariesSpecification createSdkFiles(MemoryFileSystem fileSystem) {
15 Map<String, LibraryInfo> dartLibraries = {};
16 void addSdkLibrary(String name, String contents) {
17 String path = '$name/$name.dart';
18 Uri uri = Uri.parse('file:///sdk/lib/$path');
19 fileSystem.entityForUri(uri).writeAsStringSync(contents);
20 dartLibraries[name] = new LibraryInfo(name, uri, const []);
21 }
22 10
23 addSdkLibrary('core', r''' 11 class Future<T> {
12 factory Future(computation()) => null;
13 factory Future.delayed(Duration duration, [T computation()]) => null;
14 factory Future.microtask(FutureOr<T> computation()) => null;
15 factory Future.value([value]) => null;
16
17 static Future<List<T>> wait<T>(Iterable<Future<T>> futures) => null;
18 Future<R> then<R>(FutureOr<R> onValue(T value)) => null;
19
20 Future<T> whenComplete(action());
21 }
22
23
24 class FutureOr<T> {}
25 class Stream<T> {}
26 abstract class StreamIterator<T> {}
27
28 abstract class Completer<T> {
29 factory Completer() => null;
30 factory Completer.sync() => null;
31 Future<T> get future;
32 void complete([FutureOr<T> value]);
33 void completeError(Object error, [StackTrace stackTrace]);
34 bool get isCompleted;
35 }
36
37 class _StreamIterator<T> implements StreamIterator<T> {}
38 class _AsyncStarStreamController {}
39 Object _asyncStackTraceHelper(Function async_op) { }
40 Function _asyncThenWrapperHelper(continuation) {}
41 Function _asyncErrorWrapperHelper(continuation) {}
42 Future _awaitHelper(
43 object, Function thenCallback, Function errorCallback, var awaiter) {}
44 ''';
45
46 final _CORE = r'''
24 library dart.core; 47 library dart.core;
25 import 'dart:_internal'; 48 import 'dart:_internal';
26 import 'dart:async'; 49 import 'dart:async';
27 50
28 class Object { 51 class Object {
29 const Object(); 52 const Object();
30 bool operator ==(other) => identical(this, other); 53 bool operator ==(other) => identical(this, other);
31 String toString() => 'a string'; 54 String toString() => 'a string';
32 int get hashCode => 0; 55 int get hashCode => 0;
33 Type get runtimeType => null; 56 Type get runtimeType => null;
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 Iterable<V> get values; 219 Iterable<V> get values;
197 } 220 }
198 221
199 class Duration implements Comparable<Duration> {} 222 class Duration implements Comparable<Duration> {}
200 223
201 external bool identical(Object a, Object b); 224 external bool identical(Object a, Object b);
202 225
203 void print(Object o) {} 226 void print(Object o) {}
204 227
205 abstract class _SyncIterable implements Iterable {} 228 abstract class _SyncIterable implements Iterable {}
206 '''); 229 ''';
207 230
208 addSdkLibrary('async', r''' 231 /// Create SDK libraries which are used by Fasta to perform kernel generation.
209 library dart.async; 232 /// The root of the SDK is `file:///sdk`, it will contain a libraries
233 /// specification file at `lib/libraries.json`.
234 ///
235 /// Returns the [TargetLibrariesSpecification] whose contents are in
236 /// libraries.json.
237 TargetLibrariesSpecification createSdkFiles(MemoryFileSystem fileSystem) {
238 Map<String, LibraryInfo> dartLibraries = {};
239 void addSdkLibrary(String name, String contents) {
240 String path = '$name/$name.dart';
241 Uri uri = Uri.parse('file:///sdk/lib/$path');
242 fileSystem.entityForUri(uri).writeAsStringSync(contents);
243 dartLibraries[name] = new LibraryInfo(name, uri, const []);
244 }
210 245
211 class Future<T> { 246 fileSystem.entityForUri(Uri.parse('file:///sdk/')).createDirectory();
212 factory Future(computation()) => null;
213 factory Future.delayed(Duration duration, [T computation()]) => null;
214 factory Future.microtask(FutureOr<T> computation()) => null;
215 factory Future.value([value]) => null;
216 247
217 static Future<List<T>> wait<T>(Iterable<Future<T>> futures) => null; 248 addSdkLibrary('core', _CORE);
218 Future<R> then<R>(FutureOr<R> onValue(T value)) => null; 249 addSdkLibrary('async', _ASYNC);
219
220 Future<T> whenComplete(action());
221 }
222
223
224 class FutureOr<T> {}
225 class Stream<T> {}
226 abstract class StreamIterator<T> {}
227
228 abstract class Completer<T> {
229 factory Completer() => null;
230 factory Completer.sync() => null;
231 Future<T> get future;
232 void complete([FutureOr<T> value]);
233 void completeError(Object error, [StackTrace stackTrace]);
234 bool get isCompleted;
235 }
236
237 class _StreamIterator<T> implements StreamIterator<T> {}
238 class _AsyncStarStreamController {}
239 Object _asyncStackTraceHelper(Function async_op) { }
240 Function _asyncThenWrapperHelper(continuation) {}
241 Function _asyncErrorWrapperHelper(continuation) {}
242 Future _awaitHelper(
243 object, Function thenCallback, Function errorCallback, var awaiter) {}
244 ''');
245 250
246 addSdkLibrary('collection', 'library dart.collection;'); 251 addSdkLibrary('collection', 'library dart.collection;');
247 addSdkLibrary('convert', 'library dart.convert;'); 252 addSdkLibrary('convert', 'library dart.convert;');
248 addSdkLibrary('developer', 'library dart.developer;'); 253 addSdkLibrary('developer', 'library dart.developer;');
249 addSdkLibrary('io', 'library dart.io;'); 254 addSdkLibrary('io', 'library dart.io;');
250 addSdkLibrary('isolate', 'library dart.isolate;'); 255 addSdkLibrary('isolate', 'library dart.isolate;');
251 addSdkLibrary('math', ''' 256 addSdkLibrary('math', '''
252 library dart.math; 257 library dart.math;
253 external double sin(num radians); 258 external double sin(num radians);
254 '''); 259 ''');
255 addSdkLibrary('mirrors', 'library dart.mirrors;'); 260 addSdkLibrary('mirrors', 'library dart.mirrors;');
256 addSdkLibrary('nativewrappers', 'library dart.nativewrappers;'); 261 addSdkLibrary('nativewrappers', 'library dart.nativewrappers;');
257 addSdkLibrary('profiler', 'library dart.profiler;'); 262 addSdkLibrary('profiler', 'library dart.profiler;');
258 addSdkLibrary('typed_data', 'library dart.typed_data;'); 263 addSdkLibrary('typed_data', 'library dart.typed_data;');
259 addSdkLibrary('vmservice_io', 'library dart.vmservice_io;');
260 addSdkLibrary('_builtin', 'library dart._builtin;'); 264 addSdkLibrary('_builtin', 'library dart._builtin;');
261 addSdkLibrary('_internal', ''' 265 addSdkLibrary('_internal', '''
262 library dart._internal; 266 library dart._internal;
263 class Symbol {} 267 class Symbol {}
264 class ExternalName { 268 class ExternalName {
265 final String name; 269 final String name;
266 const ExternalName(this.name); 270 const ExternalName(this.name);
267 } 271 }
268 '''); 272 ''');
269 addSdkLibrary('_vmservice', 'library dart._vmservice;');
270 273
271 var targetSpec = new TargetLibrariesSpecification('vm', dartLibraries); 274 var targetSpec = new TargetLibrariesSpecification(null, dartLibraries);
272 var spec = new LibrariesSpecification({'vm': targetSpec}); 275 var spec = new LibrariesSpecification({'none': targetSpec, 'vm': targetSpec});
273 276
274 Uri uri = Uri.parse('file:///sdk/lib/libraries.json'); 277 Uri uri = Uri.parse('file:///sdk/lib/libraries.json');
275 fileSystem.entityForUri(uri).writeAsStringSync(spec.toJsonString(uri)); 278 fileSystem.entityForUri(uri).writeAsStringSync(spec.toJsonString(uri));
276 return targetSpec; 279 return targetSpec;
277 } 280 }
OLDNEW
« no previous file with comments | « pkg/front_end/test/src/incremental/kernel_driver_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698