dart-sdk/tests/ffi
Daco Harkes 6101e4653b [test/ffi] Add struct stack alignment test
A smoke test to exercise alignment of structs with various field types
to see how they are aligned on the stack. Only contains small structs
because most ABIs only pass structs less than 16 bytes on the stack.

Especially tests iOS64, where `AlignOf(struct{float32;float32;}) == 4`
but `AlignOf(struct{int32;int32;}) == 8` due to the special treatment
of homogenous floats in the arm64 ABI combined with iOS decision to not
align everything on the stack to at least word size.

Test tested on iOS64 through Flutter.

structs_by_value_tests_configuration.dart is the only non-generated
file.

The tests are tested in the dependent CL. Tests are ignored in status
file and are un-ignored in dependent CL.

Tests for https://github.com/dart-lang/sdk/issues/36730.

Change-Id: I6ec4523208db740b8ea3f8a4ab1e5717f1088467
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/170691
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Auto-Submit: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-11-06 13:54:23 +00:00
..
generator [test/ffi] Add struct stack alignment test 2020-11-06 13:54:23 +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 [test/ffi] Passing structs by value test generator 2020-10-26 12:01:16 +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
coordinate_nnbd_workaround.dart [test/ffi] Test struct workaround for external fields 2020-07-09 15:09:21 +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_isolates_test.dart [vm/ffi] Fix prepare_flutter_bundle.dart 2020-10-28 21:33:35 +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] Passing structs by value test generator 2020-10-26 12:01:16 +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_structs_by_value_generated_test.dart [test/ffi] Add struct stack alignment test 2020-11-06 13:54:23 +00:00
function_callbacks_structs_by_value_test.dart [test/ffi] Passing structs by value test generator 2020-10-26 12:01:16 +00:00
function_callbacks_test.dart [vm/ffi] fix callbacks in --no-use-bare-instructions 2020-08-14 12:49:37 +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_by_value_generated_test.dart [test/ffi] Add struct stack alignment test 2020-11-06 13:54:23 +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
regress_37254_test.dart Cleanup misc remaining references to bytecode 2020-10-28 21:51:20 +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
regress_43016_test.dart Cleanup misc remaining references to bytecode 2020-10-28 21:51:20 +00:00
regress_43693_test.dart [vm/ffi] Fix alignment of Uint64 fields in structs on some ABIs 2020-10-09 16:32:08 +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_nnbd_workaround_test.dart [test/ffi] Test struct workaround for external fields 2020-07-09 15:09:21 +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] Native API: Make Dart_NewWeakPersistentHandle not auto delete 2020-11-03 10:27:44 +00:00
vmspecific_handle_test.dart [vm/ffi] Remove try-catch from ffi trampoline if no handle scope 2020-06-26 12:03:02 +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