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

Unified Diff: tests/isolate/package_resolve_test.dart

Issue 1553233002: Add package config support to dart:isolate (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Addressed review comments. Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: tests/isolate/package_resolve_test.dart
diff --git a/tests/isolate/package_resolve_test.dart b/tests/isolate/package_resolve_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..948a3c14eb6ba5a954d0788ace5f210aa05f9afe
--- /dev/null
+++ b/tests/isolate/package_resolve_test.dart
@@ -0,0 +1,51 @@
+// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
+// 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.
+
+import 'dart:io';
+import 'dart:isolate';
+
+final SPAWN_PACKAGE_ROOT = "file:///no/such/package/root/";
+final PACKAGE_URI = "package:foo/bar.dart";
+final PACKAGE_PATH = "file:///no/such/package/root/foo/bar.dart";
+
+void main([args, port]) async {
+ if (port != null) {
+ testPackageResolution(port);
+ return;
+ }
+ var p = new RawReceivePort();
+ Isolate.spawnUri(Platform.script,
+ [],
+ p.sendPort,
+ packageRoot: Uri.parse(SPAWN_PACKAGE_ROOT));
+ p.handler = (msg) {
+ p.close();
+ if (msg is! List) {
+ print(msg.runtimeType);
+ throw "Failure return from spawned isolate:\n\n$msg";
+ }
+ if (msg[0] != SPAWN_PACKAGE_ROOT) {
+ throw "Bad package root in child isolate: ${msg[0]}";
+ }
+ if (msg[1] != PACKAGE_PATH) {
+ throw "Package path not matching: ${msg[1]}";
+ }
+ print("SUCCESS");
+ };
+ print("Spawning isolate's package root: ${await Isolate.packageRoot}");
+}
+
+testPackageResolution(port) async {
+ try {
+ var packageRootStr = Platform.packageRoot;
+ var packageRoot = await Isolate.packageRoot;
+ var resolvedPkg = await Isolate.resolvePackageUri(Uri.parse(PACKAGE_URI));
+ print("Spawned isolate's package root flag: $packageRootStr");
+ print("Spawned isolate's loaded package root: $packageRoot");
+ print("Spawned isolate's resolved package path: $resolvedPkg");
+ port.send([packageRoot?.toString(), resolvedPkg?.toString()]);
+ } catch (e, s) {
+ port.send("$e\n$s\n");
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698