Skip to content

Add %makearray_dynamic tests#45

Merged
mshinwell merged 5 commits intomshinwell:makearray_dynamicfrom
oxcaml:rtjoa.makearray_dynamic_tests
Dec 18, 2024
Merged

Add %makearray_dynamic tests#45
mshinwell merged 5 commits intomshinwell:makearray_dynamicfrom
oxcaml:rtjoa.makearray_dynamic_tests

Conversation

@rtjoa
Copy link
Copy Markdown

@rtjoa rtjoa commented Dec 18, 2024

Summary

  • Generate %makearray_dynamic tests (131a2cf) (see below)
  • Move %makearray_dynamic_uninit to layouts_beta (from layouts_alpha) (b719e45)
  • Use the existing gen_product_array_helpers.ml infra to test %makearay_dynamic_uninit(4ce5167) and unboxed float arrays
    (9c07d0f)
  • Test that %makearray_dynamic_uninit only accepts GC-ignored layouts (3e16c1c)

Generated tests

We generate tests for uninitialized/initialized heap/local arrays of various types and sizes. For each such array, we do the following.

  1. Create an array
  2. For initialized arrays, check all elements have the correct value
  3. Fill array with distinct values and read back those values
  4. Check that getting bad indices errors
  5. Check that setting bad indices errors
  6. Check that array contents were unaffected by setting bad indices
  7. Overlapping blits
  8. Blits to heap arrays
  9. Blits to local arrays

We only perform steps 7-9 for arrays whose elements are GC-ignorable. This can be changed once blits work for all arrays.

The tests are generated by testsuite/tests/typing-layouts-arrays/generate_makearray_dynamic_tests.ml. This generates testsuite/tests/typing-layouts-arrays/generated_test.ml. This test caught the bug fixed by 8651275 (minimal example).

The test generator is loosely based on testsuite/tests/mixed-blocks/generate_mixed_blocks_code.ml.

@rtjoa rtjoa force-pushed the rtjoa.makearray_dynamic_tests branch from e0e3cfd to e564489 Compare December 18, 2024 04:42
@rtjoa rtjoa force-pushed the rtjoa.makearray_dynamic_tests branch from e564489 to 131a2cf Compare December 18, 2024 04:47
@rtjoa rtjoa changed the title Add %makearray_dynamic tests Add %makearray_dynamic tests and move %makearray_dynamic_uninit to beta Dec 18, 2024
@rtjoa rtjoa changed the title Add %makearray_dynamic tests and move %makearray_dynamic_uninit to beta Add %makearray_dynamic tests & move %makearray_dynamic_uninit to beta Dec 18, 2024
@rtjoa rtjoa changed the title Add %makearray_dynamic tests & move %makearray_dynamic_uninit to beta Add %makearray_dynamic tests Dec 18, 2024
@rtjoa rtjoa marked this pull request as ready for review December 18, 2024 04:49
@mshinwell mshinwell merged commit a417e98 into mshinwell:makearray_dynamic Dec 18, 2024
@mshinwell mshinwell deleted the rtjoa.makearray_dynamic_tests branch December 18, 2024 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants