diff options
Diffstat (limited to 'test/lib')
| -rw-r--r-- | test/lib/jit_support.rb | 16 | ||||
| -rw-r--r-- | test/lib/parser_support.rb | 20 |
2 files changed, 26 insertions, 10 deletions
diff --git a/test/lib/jit_support.rb b/test/lib/jit_support.rb index cf3baaaeb7..386a5a6f1e 100644 --- a/test/lib/jit_support.rb +++ b/test/lib/jit_support.rb @@ -10,24 +10,20 @@ module JITSupport end def yjit_enabled? - defined?(RubyVM::YJIT.enabled?) && RubyVM::YJIT.enabled? + defined?(RubyVM::YJIT) && RubyVM::YJIT.enabled? end def yjit_force_enabled? "#{RbConfig::CONFIG['CFLAGS']} #{RbConfig::CONFIG['CPPFLAGS']}".match?(/(\A|\s)-D ?YJIT_FORCE_ENABLE\b/) end - def rjit_supported? - return @rjit_supported if defined?(@rjit_supported) + def zjit_supported? + return @zjit_supported if defined?(@zjit_supported) # nil in mswin - @rjit_supported = ![nil, 'no'].include?(RbConfig::CONFIG['RJIT_SUPPORT']) + @zjit_supported = ![nil, 'no'].include?(RbConfig::CONFIG['ZJIT_SUPPORT']) end - def rjit_enabled? - defined?(RubyVM::RJIT) && RubyVM::RJIT.enabled? - end - - def rjit_force_enabled? - "#{RbConfig::CONFIG['CFLAGS']} #{RbConfig::CONFIG['CPPFLAGS']}".match?(/(\A|\s)-D ?RJIT_FORCE_ENABLE\b/) + def zjit_enabled? + defined?(RubyVM::ZJIT) && RubyVM::ZJIT.enabled? end end diff --git a/test/lib/parser_support.rb b/test/lib/parser_support.rb new file mode 100644 index 0000000000..0daf45e87b --- /dev/null +++ b/test/lib/parser_support.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module ParserSupport + module_function + + # Determines whether or not Prism is being used in the current process. This + # would have been determined by `--parser=prism` on either the command line or + # from within various environment variables. + def prism_enabled? + RubyVM::InstructionSequence.compile("").to_a[4][:parser] == :prism + end + + # Determines whether or not Prism would be used by a subprocess. This is + # necessary because some tests run in subprocesses, and we need to know if we + # expect Prism to be used by those tests. This happens if Prism is configured + # as the default parser. + def prism_enabled_in_subprocess? + EnvUtil.invoke_ruby(["-v"], "", true, false)[0].include?("+PRISM") + end +end |
