1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test
Aaron Patterson ebaf56c013 YJIT: Implement getblockparam
This implements the getblockparam instruction.

There are two cases we need to handle depending on whether or not
VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM is set in the environment flag.

When the modified flag is unset, we need to call rb_vm_bh_to_procval to
get a proc from our passed block, save the proc in the environment, and
set the modified flag.

In the case that the modified flag is set we are able to just use the
existing proc in the environment.

One quirk of this is that we need to call jit_prepare_routine_call early
and ensure we update PC and SP regardless of the branch taken, so that
we have a consistent SP offset at the start of the next instruction.

We considered using a chain guard to generate these two paths
separately, but decided against it because it's very common to see both
and the modified case is basically a subset of the instructions in the
unmodified case.

This includes tests for both getblockparam and getblockparamproxy which
was previously missing a test.
2022-05-12 14:34:18 -07:00
..
-ext- Avoid defining the same test class in multiple files 2022-04-22 15:00:16 -07:00
base64
benchmark
bigdecimal [ruby/bigdecimal] Fix the maximum precision of the quotient 2022-01-24 10:56:30 +09:00
cgi
coverage
csv [ruby/csv] test: reduce size for stability on GitHub Actions 2021-12-24 14:35:33 +09:00
date Avoid defining the same test class in multiple files 2022-04-22 15:00:16 -07:00
did_you_mean Sync did_you_mean 2021-12-24 23:20:30 +09:00
digest
drb
dtrace Use omit instead of skip without the default gems tests 2022-01-11 21:17:59 +09:00
erb [ruby/erb] Revert "Remove safe_level and further positional arguments (https://github.com/ruby/erb/pull/7)" 2022-01-17 12:39:17 -08:00
error_highlight [ruby/error_highlight] Add a test to check if it is robust against a spoofed filename 2022-01-04 23:18:37 +09:00
etc
excludes Skip three tests on FreeBSD 13 2022-03-08 16:06:37 +09:00
fiber test/fiber/test_scheduler.rb: Remove the test file from $LOADED_FEATURES 2022-05-09 10:20:25 +09:00
fiddle
fileutils Avoid defining the same test class in multiple files 2022-04-22 15:00:16 -07:00
fixtures/fake_sorted_set_gem
io test/io/console/test_io_console.rb: parens needed 2022-03-08 17:40:02 +09:00
irb [ruby/irb] Check colorize option correctly to clear char attr and don't use it for tests 2021-12-21 15:50:32 +09:00
json
lib Fix test_rubyoptions for MinGW (#5363) 2021-12-27 22:22:09 -08:00
logger [ruby/logger] Fix log rotation inter-process lock failed. 2022-01-27 12:33:06 +09:00
mkmf Avoid defining the same test class in multiple files 2022-04-22 15:00:16 -07:00
monitor
net [ruby/net-http] Feature detect to make net/http usable with JRuby 2022-04-20 13:01:08 +09:00
nkf
objspace Refactor test_dump_all to make assertions about the contents of the dumped hash 2022-03-29 08:21:10 -07:00
open-uri
openssl [ruby/openssl] Add tast cases to OpenSSL::BN using ractor 2021-12-25 03:31:59 +09:00
optparse Avoid defining the same test class in multiple files 2022-04-22 15:00:16 -07:00
ostruct [ruby/ostruct] Fix class and method as attribute names 2022-03-07 20:08:22 +09:00
pathname [ruby/pathname] Implement Pathname#lutime 2022-04-21 17:10:19 +09:00
psych [ruby/psych] Add strict_integer option to parse numbers with commas as strings 2022-01-22 10:00:51 +09:00
racc
rdoc [ruby/rdoc] Apply matching word pairs to underscore-methods 2022-04-14 16:37:14 +09:00
readline Increase wait time 2021-12-25 00:20:53 +09:00
reline [ruby/reline] Fix support for emacs-ctlx and emacs-meta keymaps 2022-02-22 18:52:52 +09:00
resolv [ruby/resolv] Use omit instead of skip for test-unit 2022-01-12 10:49:58 +09:00
rinda [ruby/rinda] Use omit instead of skip for test-unit 2022-01-12 10:59:21 +09:00
ripper
ruby YJIT: Implement getblockparam 2022-05-12 14:34:18 -07:00
rubygems Prevent a "warning: `*' interpreted as argument prefix" 2022-04-29 13:14:47 +09:00
socket Use omit instead of skip: test/socket/**/*.rb 2021-12-28 20:29:54 +09:00
stringio
strscan
syslog
uri [ruby/uri] Improve URI.register_scheme tests and automatically upcase the given scheme 2022-05-12 18:19:17 +09:00
win32ole [ruby/win32ole] Use omit() for skip() 2022-01-12 10:50:43 +09:00
yaml
zlib [ruby/zlib] Mask checksums to lower 32bits 2022-04-02 17:01:33 +09:00
runner.rb
test_abbrev.rb
test_delegate.rb
test_extlibs.rb
test_find.rb [ruby/find] Use omit instead of skip for test-unit 2022-01-11 21:40:51 +09:00
test_forwardable.rb
test_getoptlong.rb
test_ipaddr.rb [ruby/ipaddr] Fix exception calling to_range' after freeze' 2022-02-10 17:18:05 +09:00
test_mutex_m.rb
test_observer.rb
test_open3.rb [ruby/open3] Use omit instead of skip for test-unit 2022-01-12 10:52:09 +09:00
test_pp.rb [ruby/pp] Add context to bind_call and skip 2.7+ test 2021-12-18 08:38:59 +09:00
test_prettyprint.rb
test_pstore.rb
test_pty.rb Use omit instead of skip without the default gems tests 2022-01-11 21:17:59 +09:00
test_rbconfig.rb
test_securerandom.rb
test_set.rb Make Set a builtin feature [Feature #16989] 2022-02-18 11:56:24 +09:00
test_shellwords.rb
test_singleton.rb
test_sorted_set.rb
test_syslog.rb
test_tempfile.rb
test_time.rb
test_timeout.rb
test_tmpdir.rb [ruby/tmpdir] Use omit instead of skip for test-unit 2022-01-11 21:50:53 +09:00
test_trick.rb
test_tsort.rb
test_unicode_normalize.rb
test_weakref.rb