Skip to content

Zjit test against ruby tests #619

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/zjit-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,8 @@ jobs:
- test_task: 'ruby' # build test for combo build
configure: '--enable-yjit --enable-zjit'

- test_task: 'test-all'
- test_task: 'zjit-test-all'
configure: '--enable-zjit=dev'
tests: '../src/test/ruby/test_zjit.rb'

- test_task: 'btest'
configure: '--enable-zjit=dev'
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/zjit-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,8 @@ jobs:
- test_task: 'zjit-test'
configure: '--enable-yjit --enable-zjit=dev'

- test_task: 'test-all'
- test_task: 'zjit-test-all'
configure: '--enable-zjit=dev'
tests: '../src/test/ruby/test_zjit.rb'

- test_task: 'btest'
configure: '--enable-zjit=dev'
Expand Down
14 changes: 12 additions & 2 deletions doc/zjit.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ in a way that can be easily shared with other team members.

Make sure you have a `--enable-zjit=dev` build, and run `brew install cargo-nextest` first.

### make zjit-test-all
### make zjit-check

This command runs all ZJIT tests: `make zjit-test` and `test/ruby/test_zjit.rb`.

```
make zjit-test-all
make zjit-check
```

### make zjit-test
Expand Down Expand Up @@ -78,6 +78,16 @@ use `make`.

</details>

### make zjit-test-all

```
make zjit-test-all
```

This command runs all Ruby tests under `/test/ruby/` with ZJIT enabled.

Certain tests are excluded under `/test/.excludes-zjit`.

### test/ruby/test\_zjit.rb

This command runs Ruby execution tests.
Expand Down
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestArgf.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(:test_skip_in_each_byte, 'Test fails with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestArray.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Tests make ZJIT panic')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestBignum.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(:test_quad_pack, 'Test fails with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestEncoding.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_ractor/, "Tests make ZJIT panic")
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestEnumerator.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(:test_size_for_loops, 'Test crashes on Ubuntu with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestEnv.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Multiple tests make ZJIT panic')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestFixnum.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Tests make ZJIT panic')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestInteger.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(:test_ceildiv, 'Test crashes on Ubuntu with ZJIT')
2 changes: 2 additions & 0 deletions test/.excludes-zjit/TestIntegerComb.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
exclude(:test_pack_utf8, 'Test crashes with ZJIT')
exclude(:test_pack_ber, 'Test fails with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestKeywordArguments.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Multiple tests make ZJIT panic')
8 changes: 8 additions & 0 deletions test/.excludes-zjit/TestMemoryView.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
exclude(:test_rb_memory_view_get_item_pointer_multiple_members, 'Test crashes with ZJIT')
exclude(:test_rb_memory_view_extract_item_members_doble, 'Test crashes with ZJIT')
exclude(:test_rb_memory_view_extract_item_members_float_endianness, 'Test crashes with ZJIT')
exclude(:test_rb_memory_view_get_item_pointer_single_member, 'Test crashes with ZJIT')
exclude(:test_rb_memory_view_extract_item_members_doble_endianness, 'Test crashes with ZJIT')

exclude(:test_rb_memory_view_extract_item_members_endianness, 'Test fails with ZJIT')
exclude(:test_rb_memory_view_extract_item_members, 'Test fails with ZJIT')
32 changes: 32 additions & 0 deletions test/.excludes-zjit/TestPack.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
exclude(:test_ascii_incompatible, 'Test crashes with ZJIT')
exclude(:test_pack_U, 'Test crashes with ZJIT')
exclude(:test_unpack_garbage, 'Test crashes with ZJIT')
exclude(:test_pack_garbage, 'Test crashes with ZJIT')
exclude(:test_pack, 'Test crashes with ZJIT')

exclude(:test_pack_unpack_lL, 'Test fails with ZJIT')
exclude(:test_pack_unpack_x, 'Test fails with ZJIT')
exclude(:test_unpack_n, 'Test fails with ZJIT')
exclude(:test_pack_N, 'Test fails with ZJIT')
exclude(:test_integer_endian, 'Test fails with ZJIT')
exclude(:test_pack_unpack_m0, 'Test fails with ZJIT')
exclude(:test_pack_p2, 'Test fails with ZJIT')
exclude(:test_pack_unpack_X, 'Test fails with ZJIT')
exclude(:test_pack_unpack_nN, 'Test fails with ZJIT')
exclude(:test_unpack1, 'Test fails with ZJIT')
exclude(:test_pack_n, 'Test fails with ZJIT')
exclude(:test_pack_unpack_percent, 'Test fails with ZJIT')
exclude(:test_unpack_N, 'Test fails with ZJIT')
exclude(:test_pack_unpack_cC, 'Test fails with ZJIT')
exclude(:test_pack_unpack_vV, 'Test fails with ZJIT')
exclude(:test_format_string_modified, 'Test fails with ZJIT')
exclude(:test_pack_unpack_atmark, 'Test fails with ZJIT')
exclude(:test_pack_unpack_iI, 'Test fails with ZJIT')
exclude(:test_illegal_bang, 'Test fails with ZJIT')
exclude(:test_pack_unpack_U, 'Test fails with ZJIT')
exclude(:test_pack_unpack_fdeEgG, 'Test fails with ZJIT')
exclude(:test_invalid_warning, 'Test fails with ZJIT')
exclude(:test_short_string, 'Test fails with ZJIT')
exclude(:test_pack_unpack_sS, 'Test fails with ZJIT')
exclude(:test_comment, 'Test fails with ZJIT')
exclude(:test_pack_unpack_w, 'Test fails with ZJIT')
2 changes: 2 additions & 0 deletions test/.excludes-zjit/TestParse.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
exclude(:test_flip_flop, 'Test fails with ZJIT')
exclude(:test_rescue_in_command_assignment, 'Test fails with ZJIT')
6 changes: 6 additions & 0 deletions test/.excludes-zjit/TestProc.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
exclude(/test_/, 'Tests make ZJIT panic')

# exclude(:test_proc_args_pos_rest_block, 'Test crashes with ZJIT')
# exclude(:test_proc_args_rest_post_block, 'Test crashes with ZJIT')

# exclude(:test_binding_receiver, 'Test fails with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestRactor.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Tests make ZJIT panic')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestRefinement.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(:test_override_builtin_method_with_method_added, 'Test fails with ZJIT')
4 changes: 4 additions & 0 deletions test/.excludes-zjit/TestRegexp.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
exclude(:test_inspect, 'Test fails with ZJIT')
exclude(:test_quote, 'Test fails with ZJIT')
exclude(:test_union, 'Test fails with ZJIT')
exclude(:test_unescape, 'Test fails with ZJIT')
10 changes: 10 additions & 0 deletions test/.excludes-zjit/TestRubyOptions.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
exclude(:test_verbose, 'Test crashes with ZJIT')
exclude(:test_segv_setproctitle, 'Test crashes with ZJIT')
exclude(:test_crash_report, 'Test crashes with ZJIT')
exclude(:test_segv_loaded_features, 'Test crashes with ZJIT')
exclude(:test_crash_report_executable_path, 'Test crashes with ZJIT')
exclude(:test_segv_test, 'Test crashes with ZJIT')
exclude(:test_crash_report_script, 'Test crashes with ZJIT')
exclude(:test_crash_report_script_path, 'Test crashes with ZJIT')

exclude(:test_version, 'Test fails with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestSetTraceFunc.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Test fails with ZJIT intermittently')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestSprintfComb.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Test fails with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestString.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(:test_to_f, 'Test crashes with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestString2.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(:test_to_f, 'Test crashes with ZJIT')
2 changes: 2 additions & 0 deletions test/.excludes-zjit/TestThread.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
exclude(:test_switch_while_busy_loop, 'Test hangs with ZJIT')
exclude(:test_handle_interrupted?, 'Test fails with ZJIT')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestTime.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Tests make ZJIT panic')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestTimeTZ.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Tests make ZJIT panic')
1 change: 1 addition & 0 deletions test/.excludes-zjit/TestVariable.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exclude(/test_/, 'Tests make ZJIT panic')
8 changes: 6 additions & 2 deletions zjit/zjit.mk
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,15 @@ update-zjit-bench:
https://github.com/Shopify/zjit-bench zjit-bench $(GIT_OPTS)

# Gives quick feedback about ZJIT. Not a replacement for a full test run.
.PHONY: zjit-test-all
zjit-test-all:
.PHONY: zjit-check
zjit-check:
$(MAKE) zjit-test
$(MAKE) test-all TESTS='$(top_srcdir)/test/ruby/test_zjit.rb'

.PHONY: zjit-test-all
zjit-test-all:
$(MAKE) test-all RUST_BACKTRACE=1 TEST_EXCLUDES='--excludes-dir=$(top_srcdir)/test/.excludes-zjit --name=!/memory_leak/' RUN_OPTS='--zjit-call-threshold=1' TESTS='$(top_srcdir)/test/ruby/'

ZJIT_BINDGEN_DIFF_OPTS =

# Generate Rust bindings. See source for details.
Expand Down
Loading