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

Side by Side Diff: test/current_isolate_info_test.dart

Issue 2224203002: Fix current_isolate_info_test. (Closed) Base URL: git@github.com:dart-lang/package_resolver@master
Patch Set: Created 4 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 | « pubspec.yaml ('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) 2016, the Dart project authors. Please see the AUTHORS file 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 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 'dart:async'; 5 import 'dart:async';
6 import 'dart:convert'; 6 import 'dart:convert';
7 import 'dart:io'; 7 import 'dart:io';
8 import 'dart:isolate'; 8 import 'dart:isolate';
9 9
10 import 'package:path/path.dart' as p; 10 import 'package:path/path.dart' as p;
11 import 'package:stack_trace/stack_trace.dart'; 11 import 'package:stack_trace/stack_trace.dart';
12 import 'package:test/test.dart'; 12 import 'package:test/test.dart';
13 13
14 import 'package:package_resolver/package_resolver.dart'; 14 import 'package:package_resolver/package_resolver.dart';
15 import 'package:package_resolver/src/utils.dart';
15 16
16 void main() { 17 void main() {
17 // It's important to test these, because they use PackageConfig.current and 18 // It's important to test these, because they use PackageConfig.current and
18 // they're used to verify the output of the inner isolate's 19 // they're used to verify the output of the inner isolate's
19 // PackageConfig.current. 20 // PackageConfig.current.
20 test("_packageResolverLibUri is correct", () async { 21 test("_packageResolverLibUri is correct", () async {
21 var libPath = p.fromUri(await _packageResolverLibUri); 22 var libPath = p.fromUri(await _packageResolverLibUri);
22 expect(new File(p.join(libPath, 'package_resolver.dart')).exists(), 23 expect(new File(p.join(libPath, 'package_resolver.dart')).exists(),
23 completion(isTrue)); 24 completion(isTrue));
24 }); 25 });
25 26
26 test("_pathLibUri is correct", () async { 27 test("_pathLibUri is correct", () async {
27 var libPath = p.fromUri(await _pathLibUri); 28 var libPath = p.fromUri(await _pathLibUri);
28 expect(new File(p.join(libPath, 'path.dart')).exists(), completion(isTrue)); 29 expect(new File(p.join(libPath, 'path.dart')).exists(), completion(isTrue));
29 }); 30 });
30 31
31 group("with a package config", () { 32 group("with a package config", () {
32 var resolver; 33 var resolver;
33 setUp(() async { 34 setUp(() async {
34 var map; 35 var map;
35 var currentIsolateMap = await PackageResolver.current.packageConfigMap; 36 var currentIsolateMap = await PackageResolver.current.packageConfigMap;
36 if (currentIsolateMap != null) { 37 if (currentIsolateMap != null) {
37 map = new Map.from(currentIsolateMap); 38 map = new Map.from(currentIsolateMap);
38 } else { 39 } else {
39 // If the isolate running this test isn't using package config, create 40 // If the isolate running this test isn't using package config, create
40 // one from scratch with the same resolution semantics. 41 // one from scratch with the same resolution semantics.
41 var map = {}; 42 map = {};
42 var root = p.fromUri(await PackageResolver.current.packageRoot); 43 var root = p.fromUri(await PackageResolver.current.packageRoot);
43 await for (var link in new Directory(root).list(followLinks: false)) { 44 await for (var link in new Directory(root).list(followLinks: false)) {
44 assert(link is Link); 45 assert(link is Link);
45 map[p.basename(link.path)] = 46 map[p.basename(link.path)] =
46 p.toUri(await link.resolveSymbolicLinks()); 47 ensureTrailingSlash(p.toUri((await link.resolveSymbolicLinks())));
47 } 48 }
48 } 49 }
49 50
50 // Ensure that we have at least one URI that ends with "/" and one that 51 // Ensure that we have at least one URI that ends with "/" and one that
51 // doesn't. Both of these cases need to be tested. 52 // doesn't. Both of these cases need to be tested.
52 expect(map["package_resolver"].path, endsWith("/")); 53 expect(map["package_resolver"].path, endsWith("/"));
53 map["path"] = Uri.parse(p.url.normalize(map["path"].toString())); 54 map["path"] = Uri.parse(p.url.normalize(map["path"].toString()));
54 expect(map["path"].path, isNot(endsWith("/"))); 55 expect(map["path"].path, isNot(endsWith("/")));
55 56
56 resolver = new PackageResolver.config(map); 57 resolver = new PackageResolver.config(map);
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 return false; 182 return false;
182 } on FormatException catch (_) { 183 } on FormatException catch (_) {
183 return true; 184 return true;
184 } 185 }
185 }()""", resolver), isTrue); 186 }()""", resolver), isTrue);
186 }); 187 });
187 }); 188 });
188 }); 189 });
189 } 190 }
190 191
191 Future<String> get _packageResolverLibUri async => 192 Future<String> get _packageResolverLibUri => _urlForPackage('package_resolver');
192 (await PackageResolver.current.urlFor("package_resolver")).toString();
193 193
194 Future<String> get _pathLibUri async => 194 Future<String> get _pathLibUri => _urlForPackage('path');
195 (await PackageResolver.current.urlFor("path")).toString(); 195
196 Future<String> _urlForPackage(String package) async {
197 var uri = await PackageResolver.current.urlFor(package);
198 if (await PackageResolver.current.packageConfigMap != null) {
199 return uri.toString();
200 }
201
202 // If we're using a package root, we resolve the symlinks in the test code so
203 // we need to resolve them here as well to ensure we're testing against the
204 // same values.
205 var resolved = new Directory(p.fromUri(uri)).resolveSymbolicLinksSync();
206 return ensureTrailingSlash(p.toUri(resolved)).toString();
207 }
196 208
197 Future _spawn(String expression, PackageResolver packageResolver) async { 209 Future _spawn(String expression, PackageResolver packageResolver) async {
198 var data = new UriData.fromString(""" 210 var data = new UriData.fromString("""
199 import 'dart:convert'; 211 import 'dart:convert';
200 import 'dart:isolate'; 212 import 'dart:isolate';
201 213
202 import 'package:package_resolver/package_resolver.dart'; 214 import 'package:package_resolver/package_resolver.dart';
203 215
204 main(_, SendPort message) async { 216 main(_, SendPort message) async {
205 message.send(await ($expression)); 217 message.send(await ($expression));
(...skipping 18 matching lines...) Expand all
224 isolate.resume(isolate.pauseCapability); 236 isolate.resume(isolate.pauseCapability);
225 237
226 var value = await receivePort.first; 238 var value = await receivePort.first;
227 isolate.kill(); 239 isolate.kill();
228 return value; 240 return value;
229 } finally { 241 } finally {
230 errorPort.close(); 242 errorPort.close();
231 receivePort.close(); 243 receivePort.close();
232 } 244 }
233 } 245 }
OLDNEW
« no previous file with comments | « pubspec.yaml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698