dart-sdk/tests/ffi
Ryan Macnak 1a9acb9171 [vm, ffi] Make callbacks profiler-safe.
Delay changing Thread::vm_tag on callback entry and restore the tag early on callback return so that the profiler doesn't see the "running Dart" tag unless it can also see the fake return address marking the entry frame.

TEST=ffi/async_void_function_callbacks, ffi/function_callbacks_subtype, ffi/function_callbacks, ffi/isolate_local_function_callbacks
Bug: https://github.com/dart-lang/sdk/issues/52814
Change-Id: I40d80ec7c44063d078db0e211565e2d127c6b81e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/367460
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2024-05-28 21:16:41 +00:00
..
generator [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
native_assets [test/ffi] Test native assets with assembly snapshot 2024-04-12 17:29:22 +00:00
static_checks [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
abi_specific_int_incomplete_aot_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
abi_specific_int_incomplete_jit_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
abi_specific_int_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
abi_test.dart [vm/ffi] Introduce Abi 2021-12-01 19:19:37 +00:00
address_of_array_generated_test.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_generated_shared.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_shared.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_struct_generated_test.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_test.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_typeddata_generated_test.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
aliasing_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
all_positive.dart
allocator_test.dart
analysis_options.yaml [tests] Remove obsolete Dart 3.0 experiments from FFI tests 2023-06-15 08:25:18 +00:00
async_callback_tests_utils.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
async_void_function_callbacks_test.dart [vm, ffi] Make callbacks profiler-safe. 2024-05-28 21:16:41 +00:00
bool_test.dart [vm/ffi] Add Bool 2021-10-18 10:44:11 +00:00
c_types_test.dart [vm/ffi] Add Char C type 2022-03-28 09:46:56 +00:00
callback_tests_utils.dart [vm/ffi] Closure callbacks for sync callbacks 2023-08-25 03:35:44 +00:00
callback_unwind_error_test.dart [ffi] Add failing callback test with an Error that is not an UnhandledException. 2023-05-01 16:13:51 +00:00
calloc_test.dart Reland "[vm/ffi] Roll package:ffi to Allocator and Opaque" 2021-02-10 10:19:28 +00:00
coordinate.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
coordinate_nnbd_workaround.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
data_not_asan_test.dart [deps] Roll package:ffi to 2.0.1 2022-06-19 18:29:11 +00:00
data_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
deeply_immutable_c_api_finalizer_test.dart [vm/test] Fix imports 2024-03-15 17:21:30 +00:00
dl_api_exit_enter_isolate_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
dylib_close_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
dylib_isolates_test.dart
dylib_open_test.dart Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
dylib_utils.dart [test/ffi] Fix tests on Fuchsia 2023-10-30 15:28:20 +00:00
expando_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
extension_methods_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
external_typed_data_finalizer_test.dart [vm/ffi] Pointer.asTypedList finalizer 2023-05-10 11:38:57 +00:00
external_typed_data_test.dart Reland "[vm/ffi] Roll package:ffi to Allocator and Opaque" 2021-02-10 10:19:28 +00:00
ffi.status [test] Run FFI tests on Fuchsia ARM64. 2024-04-30 17:37:45 +00:00
ffi_callback_unique_test.dart Reland "[vm] Migrate FFI callbacks to the new metadata system." 2023-06-06 02:07:58 +00:00
ffi_induce_a_crash_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
ffi_native_test.dart [vm/ffi] Remove deprecated FfiNative 2023-11-20 13:16:28 +00:00
ffi_test_helpers.dart [vm] Implement NativeFinalizer 2022-03-26 09:41:21 +00:00
finalizer_external_size_accounting_test.dart [vm, gc] Add missing promotion of Finalizer external size. Remove race incrementing external size. 2022-11-30 17:14:59 +00:00
function_callbacks_many_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
function_callbacks_structs_by_value_generated_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_callbacks_structs_by_value_native_callable_generated_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_callbacks_structs_by_value_test.dart Spelling tools 2023-01-09 15:48:57 +00:00
function_callbacks_subtype_test.dart [vm, ffi] Make callbacks profiler-safe. 2024-05-28 21:16:41 +00:00
function_callbacks_test.dart [vm, ffi] Make callbacks profiler-safe. 2024-05-28 21:16:41 +00:00
function_callbacks_varargs_generated_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_callbacks_varargs_native_callable_generated_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_callbacks_very_many_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
function_struct_by_value_out_of_bounds_test.dart [ffi]: Add extension operator methods(+,-) for pointer arithmetic 2023-12-14 11:42:38 +00:00
function_structs_by_value_generated_args_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_args_native_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_args_native_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_args_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_compounds.dart [vm, ffi] Round up checking for registers for small structs. 2023-10-17 23:01:17 +00:00
function_structs_by_value_generated_ret_arg_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_arg_native_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_arg_native_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_arg_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_native_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_native_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
function_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
function_varargs_generated_leaf_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_varargs_generated_native_leaf_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_varargs_generated_native_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_varargs_generated_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_varargs_name_test.dart [tests] Remove obsolete Dart 3.0 experiments from FFI tests 2023-06-15 08:25:18 +00:00
function_varargs_test.dart [tests] Remove obsolete Dart 3.0 experiments from FFI tests 2023-06-15 08:25:18 +00:00
function_very_many_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
hardfp_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
has_symbol_test.dart [vm/ffi] Support DynamicLibrary.process() on Windows 2022-09-27 08:42:03 +00:00
inline_array_multi_dimensional_test.dart [test/ffi] Split generated files on isLeaf 2021-10-14 13:05:33 +00:00
inline_array_test.dart [vm/ffi] Check Array<T extends AbiSpecificInt> bounds [] and []= 2024-01-05 12:35:49 +00:00
invoke_callback_after_suspension_test.dart [vm/ffi] Move ffi-callback related state from Thread to ObjectStore, move jit trampolines from Isolate to IsolateGroup 2023-05-17 11:23:28 +00:00
isolate_local_function_callbacks_test.dart [vm, ffi] Make callbacks profiler-safe. 2024-05-28 21:16:41 +00:00
msan_test.dart [vm/msan] Fix MemCopyInstr instrumentation 2024-04-08 10:40:23 +00:00
native_callables_async_structs_by_value_generated_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
native_callables_sync_structs_by_value_generated_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
native_effect_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
negative_function_test.dart
pointer_arithmetic_operators_test.dart [tests/ffi]: Fix failing pointer arithmetic test. 2023-12-18 18:38:05 +00:00
regress_37254_test.dart [vm/ffi] Stop reifying type argument in Pointer 2022-11-28 09:45:45 +00:00
regress_39044_test.dart
regress_39063_test.dart [test/ffi] Fix errors in tests 2021-09-28 13:17:01 +00:00
regress_39885_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
regress_40537_test.dart Fixed various typos in a lot of files 2022-07-25 12:21:59 +00:00
regress_43016_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_43693_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_45189_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_45198_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_45507_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_45988_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_46004_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_46127_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_47594_test.dart [infra] Run JIT FFI tests on QEMU. 2023-05-26 23:22:32 +00:00
regress_47673_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_49402_test.dart [vm/ffi] Fix constant Finalizables 2022-07-07 08:39:21 +00:00
regress_49684_test.dart [vm/ffi] Remove deprecated FfiNative 2023-11-20 13:16:28 +00:00
regress_51315_test.dart [ffi]: Add extension operator methods(+,-) for pointer arithmetic 2023-12-14 11:42:38 +00:00
regress_51321_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_51504_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
regress_51538_2_test.dart [cfe/ffi] Fix Finalizable in for( in ) loops 2023-03-02 09:05:19 +00:00
regress_51538_3_test.dart [cfe/ffi] Fix Finalizable in for( in ) loops 2023-03-02 09:05:19 +00:00
regress_51538_test.dart [cfe/ffi] Fix Finalizable in for( in ) loops 2023-03-02 09:05:19 +00:00
regress_52298_test.dart [analyzer/ffi] Fix spurious FFI errors 2023-05-08 15:16:05 +00:00
regress_52399_test.dart [vm/ffi] MSAN instrument StoreIndexedInstr x64 2023-09-19 16:51:30 +00:00
regress_b_261224444_test.dart [test/ffi] Free pointer allocated via malloc 2022-12-13 16:41:47 +00:00
regress_flutter79441_test.dart [vm/ffi] Fix representation of value for 8-bit and 16-bit FFI loads and stores 2021-04-06 21:11:23 +00:00
regress_flutter97301_test.dart [vm/test] Fix memory leak in ffi/regress_flutter97301_test 2022-02-03 00:28:55 +00:00
regress_jump_to_frame_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
sizeof_test.dart [vm/ffi] Introduce SizedNativeType 2024-01-12 10:13:39 +00:00
snapshot_test.dart [vm/ffi] Allow Pointer objects to be shared across isolates 2024-02-07 12:48:50 +00:00
stacktrace_regress_37910_test.dart
structs_nested_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
structs_nnbd_workaround_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
structs_packed_test.dart [test/ffi] Split generated files on isLeaf 2021-10-14 13:05:33 +00:00
structs_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
structs_typed_data_test.dart Reland "[vm/ffi] Introduce Struct.create and Union.create" 2024-02-01 18:28:03 +00:00
unaligned_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
variance_function_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
very_large_struct.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
vmspecific_deprecated_funcs_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
vmspecific_dynamic_library_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
vmspecific_enable_ffi_test.dart Reland "[vm/ffi] Roll package:ffi to Allocator and Opaque" 2021-02-10 10:19:28 +00:00
vmspecific_ffi_native_handles_test.dart [ffi/test] Skip handles test on Win AOT 2023-11-17 10:54:02 +00:00
vmspecific_ffi_native_test.dart [vm/ffi] Remove deprecated FfiNative 2023-11-20 13:16:28 +00:00
vmspecific_function_callbacks_exit_test.dart
vmspecific_function_callbacks_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
vmspecific_function_gc_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
vmspecific_function_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
vmspecific_handle_dynamically_linked_test.dart Expose Dart_Null_DL from dart_api_dl.h 2023-12-11 21:06:37 +00:00
vmspecific_handle_test.dart Reland "[vm/ffi] Throw on returning Error in Handle" 2022-10-03 12:25:08 +00:00
vmspecific_highmem_32bit_test.dart [test/ffi] Fix errors in tests 2021-09-28 13:17:01 +00:00
vmspecific_leaf_call_test.dart [test/ffi] Fix errors in tests 2021-09-28 13:17:01 +00:00
vmspecific_native_finalizer_2_test.dart [vm] Implement NativeFinalizer 2022-03-26 09:41:21 +00:00
vmspecific_native_finalizer_deeply_immutable_test.dart [vm/ffi] Throw on attaching NativeFinalizer to deeply immutable object 2024-03-28 11:24:36 +00:00
vmspecific_native_finalizer_isolate_groups_test.dart [vm] Implement NativeFinalizer 2022-03-26 09:41:21 +00:00
vmspecific_native_finalizer_isolates_test.dart [vm/isolates] Introduce 'vm:isolate-unsendable' pragma. 2023-03-27 20:54:11 +00:00
vmspecific_native_finalizer_test.dart [vm] Implement NativeFinalizer 2022-03-26 09:41:21 +00:00
vmspecific_object_gc_test.dart
vmspecific_pointer_load_il_test.dart [vm] Split DartReturnInstr and NativeReturnInstr 2024-03-26 11:12:38 +00:00
vmspecific_regress_37100_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
vmspecific_regress_37511_callbacks_test.dart [vm] Removes FLAG_enable_testing_pragmas from native_api_impl 2021-05-21 07:04:37 +00:00
vmspecific_regress_37511_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
vmspecific_regress_37780_test.dart
vmspecific_regress_51794_test.dart [vm/ffi] Fix test on Android 2023-04-05 19:51:09 +00:00
vmspecific_send_port_id_test.dart