diff --git a/tests/lib/isolate/spawn_uri_nested_vm_test.dart b/tests/lib/isolate/spawn_uri_nested_vm_test.dart index 087b5fc4747..0847cf69ee7 100644 --- a/tests/lib/isolate/spawn_uri_nested_vm_test.dart +++ b/tests/lib/isolate/spawn_uri_nested_vm_test.dart @@ -12,12 +12,19 @@ import 'dart:isolate'; import 'package:async_helper/async_minitest.dart'; main() { - test('isolate fromUri - nested send and reply', () { - ReceivePort port = new ReceivePort(); - Isolate.spawnUri(Uri.parse('spawn_uri_nested_child1_vm_isolate.dart'), [], [ - [1, 2], - port.sendPort - ]); + test('isolate fromUri - nested send and reply', () async { + final port = ReceivePort(); + final exitPort = ReceivePort(); + Isolate.spawnUri( + Uri.parse('spawn_uri_nested_child1_vm_isolate.dart'), + [], + [ + [1, 2], + port.sendPort + ], + onExit: exitPort.sendPort); port.first.then(expectAsync((result) => print(result))); + // ensure main isolate doesn't exit before child isolate exits + await exitPort.first; }); } diff --git a/tests/lib_2/isolate/spawn_uri_nested_vm_test.dart b/tests/lib_2/isolate/spawn_uri_nested_vm_test.dart index 423821db026..81e5882123a 100644 --- a/tests/lib_2/isolate/spawn_uri_nested_vm_test.dart +++ b/tests/lib_2/isolate/spawn_uri_nested_vm_test.dart @@ -14,12 +14,19 @@ import 'dart:isolate'; import 'package:async_helper/async_minitest.dart'; main() { - test('isolate fromUri - nested send and reply', () { - ReceivePort port = new ReceivePort(); - Isolate.spawnUri(Uri.parse('spawn_uri_nested_child1_vm_isolate.dart'), [], [ - [1, 2], - port.sendPort - ]); + test('isolate fromUri - nested send and reply', () async { + final port = ReceivePort(); + final exitPort = ReceivePort(); + Isolate.spawnUri( + Uri.parse('spawn_uri_nested_child1_vm_isolate.dart'), + [], + [ + [1, 2], + port.sendPort + ], + onExit: exitPort.sendPort); port.first.then(expectAsync((result) => print(result))); + // ensure main isolate doesn't exit before child isolate exits + await exitPort.first; }); }