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

Unified Diff: tests/lib/async/deferred/deferred_in_isolate_test.dart

Issue 163733003: Let deferred load work from worker isolates. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix status file Created 6 years, 10 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/lib/async/deferred/deferred_in_isolate_test.dart
diff --git a/tests/lib/async/deferred/deferred_in_isolate_test.dart b/tests/lib/async/deferred/deferred_in_isolate_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..cfeaabef591fbffa13be7dbc631f6e85d9cfd9de
--- /dev/null
+++ b/tests/lib/async/deferred/deferred_in_isolate_test.dart
@@ -0,0 +1,34 @@
+import 'dart:isolate';
+import 'dart:async';
+import '../../../../pkg/unittest/lib/unittest.dart';
+
+@a import 'deferred_in_isolate_lib.dart' as lib1;
+@b import 'deferred_api_library.dart' as lib2;
+
+const a = const DeferredLibrary("lib1");
+const b = const DeferredLibrary("NonExistingFile", uri: "wrong/");
+
+loadDeferred(ports) {
+ a.load().then((_) {
+ ports[0].send(lib1.f());
+ });
+ b.load().then((b) {
+ ports[1].send("No error");
+ lib2.foo(20);
+ }).catchError((_) {
+ ports[1].send("Error caught");
+ }, test: (e) => e is DeferredLoadException);
+}
+
+main() {
+ test("Deferred loading in isolate", () {
+ List<ReceivePort> ports = new List.generate(2, (_) => new ReceivePort());
+ ports[0].first.then(expectAsync((msg) {
+ expect(msg, equals("hi"));
+ }));
+ ports[1].first.then(expectAsync((msg) {
+ expect(msg, equals("Error caught"));
+ }));
+ Isolate.spawn(loadDeferred, ports.map((p) => p.sendPort).toList());
+ });
+}

Powered by Google App Engine
This is Rietveld 408576698