dart-sdk/tests/ffi
Daco Harkes 7eac9f355e [vm/ffi] Expose a subset of dart_(native_)api.h for dynamic linking.
This CL introduces dart_api_dl.h which exposes a subset of dart_api.h
and dart_native_api.h for dynamic linking at runtime through the FFI.
Dynamic linking is done through including dart_api_dl.cc in a shared
library and passing NativeApi.initializeApiDLData to the init function.

This CL also includes Native API versioning to deal with possible
version skew between native api version against which native libraries
are compiled and the version in the DartVM the code is run on.

The subset of symbols in the CL includes handle related symbols, error
related symbols, handle scope symbols, and native port sumbols.

Design: http://go/dart-ffi-expose-dart-api

Closes: https://github.com/dart-lang/sdk/issues/40607
Closes: https://github.com/dart-lang/sdk/issues/36858
Closes: https://github.com/dart-lang/sdk/issues/41319
Closes: https://github.com/flutter/flutter/issues/46887
Closes: https://github.com/flutter/flutter/issues/47061

Misc:
Closes: https://github.com/dart-lang/sdk/issues/42260

Change-Id: I9e557808dbc99b341f23964cbddbb05f26d7a6c5
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-msan-linux-release-x64-try,vm-kernel-precomp-msan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-mac-debug-x64-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-nnbd-linux-debug-x64-try,analyzer-nnbd-linux-release-try,front-end-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/145592
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-06-18 07:30:43 +00:00
..
aliasing_test.dart [vm/ffi] Add script to extract existing positive ffi tests into bundle to be used for flutter/flutter integration test 2019-12-04 13:02:48 +00:00
analysis_options.yaml [vm/ffi] regression test for 37511 2019-08-21 08:10:34 +00:00
callback_tests_utils.dart [vm/ffi] Add tests with very many arguments 2020-01-22 15:21:32 +00:00
coordinate.dart [vm/ffi] NNBD use external fields for structs 2020-05-18 12:22:50 +00:00
coordinate_bare.dart [vm/ffi] NNBD use external fields for structs 2020-05-18 12:22:50 +00:00
data_not_asan_test.dart [vm/ffi] Add script to extract existing positive ffi tests into bundle to be used for flutter/flutter integration test 2019-12-04 13:02:48 +00:00
data_test.dart [vm/ffi] Split FFI tests in NNBD and legacy 2020-01-29 14:04:41 +00:00
dylib_utils.dart [vm/ffi] Split FFI tests in NNBD and legacy 2020-01-29 14:04:41 +00:00
extension_methods_test.dart [vm/ffi] NNBD use external fields for structs 2020-05-18 12:22:50 +00:00
external_typed_data_test.dart [vm/ffi] Split FFI tests in NNBD and legacy 2020-01-29 14:04:41 +00:00
ffi.status [test/ffi] Disable handles test on msan 2020-06-17 08:26:39 +00:00
ffi_test_helpers.dart [vm/ffi] Remove Pointer.offsetBy. 2019-10-10 15:44:27 +00:00
function_callbacks_many_test.dart [vm/ffi] Add tests with very many arguments 2020-01-22 15:21:32 +00:00
function_callbacks_test.dart [vm/ffi] Add tests with very many arguments 2020-01-22 15:21:32 +00:00
function_callbacks_very_many_test.dart [vm/ffi] Add tests with very many arguments 2020-01-22 15:21:32 +00:00
function_structs_test.dart [test/ffi] Re-enable disabled tests 2020-02-19 08:53:39 +00:00
function_test.dart [vm/ffi] Split out tests which use nulls 2020-01-20 16:01:08 +00:00
function_very_many_test.dart [vm/ffi] Add tests with very many arguments 2020-01-22 15:21:32 +00:00
hardfp_test.dart [vm/ffi] Add tests with very many arguments 2020-01-22 15:21:32 +00:00
negative_function_test.dart [vm/ffi] Change asFunction and lookFunction to extension methods 2020-02-14 15:46:37 +00:00
prepare_flutter_bundle.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
regress_37254_test.dart [vm/ffi] Split FFI tests in NNBD and legacy 2020-01-29 14:04:41 +00:00
regress_39044_test.dart [vm] Do not fuse constants with different representations 2019-10-23 12:59:28 +00:00
regress_39063_test.dart [vm/ffi] Support moves with temp in ffi call 2019-10-23 17:42:41 +00:00
regress_39885_test.dart [vm] Fix IntConverter canonicalization 2020-01-02 12:43:36 +00:00
regress_40537_test.dart [vm/ffi] Fix sign extension for small int arguments on x64 Linux/MacOS 2020-02-10 17:05:14 +00:00
sizeof_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
snapshot_test.dart [vm/concurrency] Run all isolate related tests with/without enabling isolate groups 2019-11-27 17:23:31 +00:00
stacktrace_regress_37910_test.dart [vm/ffi] Fix crashes on stacktraces and debugging with force-optimized frames. 2019-08-26 10:18:34 +00:00
structs_test.dart [Cleanup] Removes deprecated --enable-inlining-annotations; updates annotation. 2020-02-25 12:09:10 +00:00
variance_function_test.dart [vm/ffi] Split FFI tests in NNBD and legacy 2020-01-29 14:04:41 +00:00
very_large_struct.dart [vm/ffi] NNBD use external fields for structs 2020-05-18 12:22:50 +00:00
vmspecific_dynamic_library_test.dart [vm/ffi] Split out tests which use nulls 2020-01-20 16:01:08 +00:00
vmspecific_enable_ffi_test.dart [vm/ffi] Split FFI tests in NNBD and legacy 2020-01-29 14:04:41 +00:00
vmspecific_function_callbacks_exit_test.dart [vm/ffi] Add tests with very many arguments 2020-01-22 15:21:32 +00:00
vmspecific_function_callbacks_negative_test.dart [vm/ffi] Split up function_callbacks_test 2019-12-12 16:48:40 +00:00
vmspecific_function_callbacks_test.dart [vm/ffi] Add tests with very many arguments 2020-01-22 15:21:32 +00:00
vmspecific_function_gc_test.dart [vm/ffi] Split out tests which use nulls 2020-01-20 16:01:08 +00:00
vmspecific_function_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_handle_dynamically_linked_test.dart [vm/ffi] Expose a subset of dart_(native_)api.h for dynamic linking. 2020-06-18 07:30:43 +00:00
vmspecific_handle_test.dart [vm/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
vmspecific_highmem_32bit_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_object_gc_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_regress_37100_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_regress_37511_callbacks_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_regress_37511_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_regress_37780_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_regress_38993_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_send_port_id_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00
vmspecific_static_checks_test.dart [vm/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
vmspecific_variance_function_checks_test.dart [vm/ffi] Split up some tests/ffi into vmspecific and non-vmspecific 2019-12-04 15:56:08 +00:00