Skip to content

Commit 0bc46de

Browse files
committed
[VM] Support spawning isolates when the main isolate was spawned from a Kernel IR file
Issue #31698 Change-Id: Ifc6662a3fd56245c10f5d924f771ef85ed9b222c Reviewed-on: https://dart-review.googlesource.com/34742 Reviewed-by: Vyacheslav Egorov <[email protected]>
1 parent c989cdd commit 0bc46de

File tree

9 files changed

+57
-32
lines changed

9 files changed

+57
-32
lines changed

runtime/bin/builtin.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ _enforceTrailingSlash(uri) {
135135

136136
// Embedder Entrypoint:
137137
// The embedder calls this method with the current working directory.
138-
void _setWorkingDirectory(cwd) {
138+
void _setWorkingDirectory(String cwd) {
139139
if (!_setupCompleted) {
140140
_setupHooks();
141141
}

runtime/bin/dfe.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,10 @@ void* DFE::ReadScript(const char* script_uri) const {
254254
bool DFE::TryReadKernelFile(const char* script_uri,
255255
const uint8_t** kernel_ir,
256256
intptr_t* kernel_ir_size) const {
257+
if (strlen(script_uri) >= 8 && strncmp(script_uri, "file:///", 8) == 0) {
258+
script_uri = script_uri + 7;
259+
}
260+
257261
*kernel_ir = NULL;
258262
*kernel_ir_size = -1;
259263
void* script_file = DartUtils::OpenFile(script_uri, false);

runtime/observatory/tests/service/service.status

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,6 @@ eval_test: Pass, Slow
7575
[ $builder_tag == strong && $compiler == dart2analyzer ]
7676
*: Skip # Issue 28649
7777

78-
[ $compiler == dartk && $strong && ($arch == simarm || $arch == simarm64 || $arch == simdbc64) ]
79-
isolate_lifecycle_test: Skip # Times out.
80-
8178
# Enabling of dartk for sim{arm,arm64,dbc64} revelaed these test failures, which
8279
# are to be triaged. Isolate tests are skipped on purpose due to the usage of
8380
# batch mode.
@@ -86,10 +83,8 @@ bad_reload_test: RuntimeError # Please triage.
8683
coverage_leaf_function_test: RuntimeError # Please triage.
8784
coverage_optimized_function_test: RuntimeError # Please triage.
8885
dev_fs_spawn_test: RuntimeError # Please triage.
89-
developer_service_get_isolate_id_test: RuntimeError # Please triage.
9086
get_object_rpc_test: RuntimeError # Please triage.
9187
get_source_report_test: RuntimeError # Please triage.
92-
issue_30555_test: RuntimeError # Please triage.
9388
library_dependency_test: RuntimeError # Please triage.
9489
reload_sources_test: Timeout, Skip # Please triage.
9590
set_name_rpc_test: RuntimeError # Please triage.

runtime/tests/vm/vm.status

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -329,16 +329,12 @@ cc/Parser_AllocateVariables_TwoChains: Crash
329329
dart/optimized_stacktrace_line_and_column_test: CompileTimeError # Issue 31586
330330
dart/optimized_stacktrace_line_test: CompileTimeError # Issue 31586
331331

332-
[ $compiler == dartk && $strong && ($arch == simarm || $arch == simarm64 || $arch == simdbc64) ]
333-
dart/spawn_infinite_loop_test: RuntimeError
334-
335332
# Enabling of dartk for sim{arm,arm64,dbc64} revelaed these test failures, which
336333
# are to be triaged. Isolate tests are skipped on purpose due to the usage of
337334
# batch mode.
338335
[ $compiler == dartk && ($arch == simarm || $arch == simarm64 || $arch == simdbc64) ]
339336
dart/data_uri_spawn_test: Skip # Please triage.
340337
dart/snapshot_version_test: RuntimeError # Please triage.
341-
dart/spawn_infinite_loop_test: Crash
342338

343339
[ $compiler == dartkp && !$strong ]
344340
dart/truncating_ints_test: Skip # This test cannot be run in dartkp/legacy mode (gen_kernel does not pass --limit-ints-to-64-bits in legacy mode).

tests/isolate/isolate.status

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,38 @@ unresolved_ports_test: CompileTimeError, Pass, Timeout # Fails to compile on opt
126126
# are to be triaged. Isolate tests are skipped on purpose due to the usage of
127127
# batch mode.
128128
[ $compiler == dartk && ($arch == simarm || $arch == simarm64 || $arch == simdbc64) ]
129-
*: Skip
129+
checked_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
130+
count_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
131+
cross_isolate_message_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
132+
error_at_spawnuri_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
133+
error_exit_at_spawnuri_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
134+
exit_at_spawnuri_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
135+
illegal_msg_function_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
136+
illegal_msg_mirror_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
137+
isolate_complex_messages_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
138+
issue_21398_parent_isolate1_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
139+
issue_21398_parent_isolate_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
140+
issue_24243_parent_isolate_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
141+
mandel_isolate_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
142+
message2_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
143+
message_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
144+
mint_maker_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
145+
nested_spawn2_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
146+
nested_spawn_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
147+
raw_port_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
148+
request_reply_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
149+
spawn_function_custom_class_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
150+
spawn_function_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
151+
spawn_uri_exported_main_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
152+
spawn_uri_missing_from_isolate_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
153+
spawn_uri_missing_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
154+
spawn_uri_multi_test/01: Skip # No support for Isolate.spawnUri in batch-mode atm.
155+
spawn_uri_multi_test/none: Skip # No support for Isolate.spawnUri in batch-mode atm.
156+
spawn_uri_nested_vm_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
157+
spawn_uri_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
158+
spawn_uri_vm_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
159+
static_function_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
160+
unresolved_ports_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
130161

131162
[ $compiler == none && $runtime == vm && $system == fuchsia ]
132163
*: Skip # Not yet triaged.

tests/language_2/language_2_kernel.status

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,6 @@ class_cycle_test/03: MissingCompileTimeError # Please triage.
793793
duplicate_implements_test/01: MissingCompileTimeError # Please triage.
794794
duplicate_implements_test/02: MissingCompileTimeError # Please triage.
795795
generic_methods_generic_function_result_test/01: MissingCompileTimeError # Please triage.
796-
issue23244_test: RuntimeError # Please triage.
797796
least_upper_bound_expansive_test/none: RuntimeError # Please triage.
798797
mixin_black_listed_test/02: MissingCompileTimeError # Please triage.
799798
null_test/02: MissingCompileTimeError # Please triage.

tests/lib/lib.status

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,6 @@ mirrors/variable_is_const_test/01: Crash # Please triage.
293293
[ $compiler == dartk && ($arch == simarm || $arch == simarm64 || $arch == simdbc64) ]
294294
mirrors/invocation_fuzz_test/smi: Crash # Please triage.
295295
mirrors/library_uri_io_test: RuntimeError # Please triage.
296-
mirrors/spawn_function_root_library_test: Skip
297296

298297
[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
299298
mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21

tests/lib_2/lib_2_kernel.status

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,14 +336,31 @@ typed_data/int32x4_static_test/02: MissingCompileTimeError
336336
# are to be triaged. Isolate tests are skipped on purpose due to the usage of
337337
# batch mode.
338338
[ $compiler == dartk && $strong && ($arch == simarm || $arch == simarm64 || $arch == simdbc64) ]
339-
isolate/*: Skip
339+
isolate/cross_isolate_message_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
340+
isolate/error_at_spawnuri_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
341+
isolate/error_exit_at_spawnuri_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
342+
isolate/exit_at_spawnuri_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
343+
isolate/issue_21398_parent_isolate_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
344+
isolate/issue_24243_parent_isolate_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
345+
isolate/message2_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
346+
isolate/nested_spawn2_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
347+
isolate/nested_spawn_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
348+
isolate/raw_port_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
349+
isolate/request_reply_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
350+
isolate/spawn_function_custom_class_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
351+
isolate/spawn_function_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
352+
isolate/spawn_uri_exported_main_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
353+
isolate/spawn_uri_multi_test/none: Skip # No support for Isolate.spawnUri in batch-mode atm.
354+
isolate/spawn_uri_nested_vm_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
355+
isolate/spawn_uri_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
356+
isolate/spawn_uri_vm_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
357+
isolate/unresolved_ports_test: Skip # No support for Isolate.spawnUri in batch-mode atm.
340358
mirrors/invocation_fuzz_test/emptyarray: CompileTimeError, Pass # Please triage.
341359
mirrors/invocation_fuzz_test/false: CompileTimeError, Pass # Please triage.
342360
mirrors/invocation_fuzz_test/none: CompileTimeError # Please triage.
343361
mirrors/invocation_fuzz_test/smi: CompileTimeError, DartkCrash, Crash, Pass # Please triage.
344362
mirrors/invocation_fuzz_test/string: CompileTimeError, Pass # Please triage.
345363
mirrors/library_uri_io_test: RuntimeError # Please triage.
346-
mirrors/spawn_function_root_library_test: Skip
347364

348365
# ===== Skip dartk and darkp in !$strong mode ====
349366
[ $compiler == dartk && !$strong ]

tests/standalone_2/standalone_2_kernel.status

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,9 @@ regress_29350_test/none: Pass # Issue 31537
4242
# batch mode.
4343
[ $compiler == dartk && $strong && ($arch == simarm || $arch == simarm64 || $arch == simdbc64) ]
4444
io/directory_list_sync_test: Timeout, Pass # Please triage.
45-
io/echo_server_stream_test: Skip # Uses isolates which don't work in batch mode.
4645
io/file_blocking_lock_test: Pass, Crash # Please triage.
4746
io/file_lock_test: RuntimeError # Please triage.
48-
io/http_advanced_test: Skip # Uses isolates which don't work in batch mode.
49-
io/http_basic_test: Skip # Uses isolates which don't work in batch mode.
50-
io/http_read_test: Skip # Uses isolates which don't work in batch mode.
51-
io/pipe_server_test: Skip # Uses isolates which don't work in batch mode.
52-
io/platform_test: Skip # Uses isolates which don't work in batch mode.
53-
io/raw_synchronous_socket_test: Skip # Uses isolates which don't work in batch mode.
54-
io/socket_close_test: Skip # Uses isolates which don't work in batch mode.
55-
io/socket_finalizer_test: Skip # Uses isolates which don't work in batch mode.
56-
io/socket_many_connections_test: Skip # Uses isolates which don't work in batch mode.
57-
io/stdio_socket_finalizer_test: Skip # Uses isolates which don't work in batch mode.
47+
io/platform_test: RuntimeError # Please triage.
5848
io/test_extension_fail_test: RuntimeError # Please traige.
5949
io/test_extension_test: RuntimeError # Please traige.
6050
map_insert_remove_oom_test: Pass # Please triage.
@@ -63,12 +53,6 @@ package/scenarios/invalid/non_existent_packages_file_test: Pass # Please triage.
6353
package/scenarios/packages_file_strange_formatting/empty_lines_test: CompileTimeError # Please triage.
6454
package/scenarios/packages_file_strange_formatting/mixed_line_ends_test: CompileTimeError # Please triage.
6555
package/scenarios/packages_option_only/packages_option_only_test: CompileTimeError # Please triage.
66-
regress_26031_test: RuntimeError # Please triage.
67-
regress_28854_1_test: RuntimeError # Please triage.
68-
regress_28854_2_test: RuntimeError # Please triage.
69-
typed_array_int64_uint64_test: RuntimeError # Please triage.
70-
typed_array_test: RuntimeError # Please triage.
71-
typed_data_isolate_test: RuntimeError # Please triage.
7256

7357
# ===== Skip dartk and darkp in !$strong mode ====
7458
[ $compiler == dartk && !$strong ]

0 commit comments

Comments
 (0)