| OLD | NEW |
| 1 import 'dart:isolate'; | 1 import 'dart:isolate'; |
| 2 import 'dart:async'; | 2 import 'dart:async'; |
| 3 import 'package:unittest/unittest.dart'; | 3 import 'package:unittest/unittest.dart'; |
| 4 | 4 |
| 5 @a import 'deferred_in_isolate_lib.dart' as lib1; | 5 import 'deferred_in_isolate_lib.dart' deferred as lib; |
| 6 @b import 'deferred_library.dart' as lib2; | |
| 7 | 6 |
| 8 const a = const DeferredLibrary("lib1"); | 7 loadDeferred(port) { |
| 9 const b = const DeferredLibrary("NonExistingFile", uri: "wrong/"); | 8 lib.loadLibrary().then((_) { |
| 10 | 9 port.send(lib.f()); |
| 11 loadDeferred(ports) { | |
| 12 a.load().then((_) { | |
| 13 ports[0].send(lib1.f()); | |
| 14 }); | 10 }); |
| 15 b.load().then((b) { | |
| 16 ports[1].send("No error"); | |
| 17 lib2.foo(20); | |
| 18 }).catchError((_) { | |
| 19 ports[1].send("Error caught"); | |
| 20 }, test: (e) => e is DeferredLoadException); | |
| 21 } | 11 } |
| 22 | 12 |
| 23 main() { | 13 main() { |
| 24 test("Deferred loading in isolate", () { | 14 test("Deferred loading in isolate", () { |
| 25 List<ReceivePort> ports = new List.generate(2, (_) => new ReceivePort()); | 15 ReceivePort port = new ReceivePort(); |
| 26 ports[0].first.then(expectAsync((msg) { | 16 port.first.then(expectAsync((msg) { |
| 27 expect(msg, equals("hi")); | 17 expect(msg, equals("hi")); |
| 28 })); | 18 })); |
| 29 ports[1].first.then(expectAsync((msg) { | 19 Isolate.spawn(loadDeferred, port.sendPort); |
| 30 expect(msg, equals("Error caught")); | |
| 31 })); | |
| 32 Isolate.spawn(loadDeferred, ports.map((p) => p.sendPort).toList()); | |
| 33 }); | 20 }); |
| 34 } | 21 } |
| OLD | NEW |