a949c74530
Closures going into shared variables in particular have to be confirmed to capture appropriate values. BUG=https://github.com/dart-lang/sdk/issues/62179 TEST=run_isolate_group_run_test Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try,vm-dyn-mac-debug-arm64-try,vm-aot-dyn-linux-debug-x64-try Change-Id: I27416773fd77077018739ea4dbcc6e4695e67be8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/469103 Reviewed-by: Alexander Markov <alexmarkov@google.com> Commit-Queue: Alexander Aprelev <aam@google.com>
36 lines
1.2 KiB
Dart
36 lines
1.2 KiB
Dart
// Copyright (c) 2025, 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.
|
|
//
|
|
// Tests SendPort.send from isolate group-shared mutator.
|
|
//
|
|
// VMOptions=--experimental-shared-data
|
|
// VMOptions=--experimental-shared-data --use-slow-path
|
|
// VMOptions=--experimental-shared-data --use-slow-path --stacktrace-every=100
|
|
// VMOptions=--experimental-shared-data --dwarf_stack_traces --no-retain_function_objects --no-retain_code_objects
|
|
// VMOptions=--experimental-shared-data --test_il_serialization
|
|
// VMOptions=--experimental-shared-data --profiler --profile_vm=true
|
|
// VMOptions=--experimental-shared-data --profiler --profile_vm=false
|
|
|
|
import 'dart:isolate';
|
|
|
|
import 'package:dart_internal/isolate_group.dart' show IsolateGroup;
|
|
import "package:expect/async_helper.dart";
|
|
import "package:expect/expect.dart";
|
|
|
|
main() async {
|
|
asyncStart();
|
|
final ReceivePort rp = ReceivePort();
|
|
Expect.throws(
|
|
() {
|
|
IsolateGroup.runSync(() {
|
|
rp.sendPort.send("hello");
|
|
});
|
|
},
|
|
(e) =>
|
|
e is ArgumentError && e.toString().contains('Only trivially-immutable'),
|
|
);
|
|
rp.close();
|
|
asyncEnd();
|
|
}
|