| // Copyright (c) 2021, 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:isolate'; |
| |
| import 'package:expect/expect.dart'; |
| |
| f(List args) { |
| final sendPort = args[0] as SendPort; |
| final re = args[1] as RegExp; |
| Expect.stringEquals("RegExp: pattern=abc flags=", re.toString()); |
| sendPort.send(true); |
| } |
| |
| main() async { |
| final rpError = RawReceivePort((e) { |
| Expect.fail('Spawned isolated failed with $e'); |
| }); |
| { |
| // Test sending of initialized RegExp |
| final rp = ReceivePort(); |
| final re = RegExp('abc'); |
| print(re.hasMatch('kukabcdef')); |
| await Isolate.spawn(f, <dynamic>[rp.sendPort, re], |
| onError: rpError.sendPort); |
| Expect.isTrue(await rp.first); |
| } |
| { |
| // Test send of uninitialized RegExp(num_groups is null) |
| final rp = ReceivePort(); |
| final re = RegExp('abc'); |
| await Isolate.spawn(f, <dynamic>[rp.sendPort, re], |
| onError: rpError.sendPort); |
| Expect.isTrue(await rp.first); |
| } |
| rpError.close(); |
| } |