ruby-changes:72610
From: Noah <ko1@a...>
Date: Wed, 20 Jul 2022 23:49:11 +0900 (JST)
Subject: [ruby-changes:72610] 6140edb5df (master): Match +YJIT in Ruby desc when testing segv (#6141)
https://git.ruby-lang.org/ruby.git/commit/?id=6140edb5df From 6140edb5df29bc9362ded379d6e2e72e4584d07a Mon Sep 17 00:00:00 2001 From: Noah Gibbs <noah.gibbs@s...> Date: Wed, 20 Jul 2022 15:48:58 +0100 Subject: Match +YJIT in Ruby desc when testing segv (#6141) In test_bug_reporter and test_rubyoptions we intentionally test child processes that cause SEGV. We run them with YJIT if the parent uses YJIT so that the text description matches the parent RUBY_DESCRIPTION. --- test/-ext-/bug_reporter/test_bug_reporter.rb | 5 +++++ test/ruby/test_rubyoptions.rb | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/test/-ext-/bug_reporter/test_bug_reporter.rb b/test/-ext-/bug_reporter/test_bug_reporter.rb index 8e1121f908..81d2ca4674 100644 --- a/test/-ext-/bug_reporter/test_bug_reporter.rb +++ b/test/-ext-/bug_reporter/test_bug_reporter.rb @@ -4,6 +4,10 @@ require 'tmpdir' https://github.com/ruby/ruby/blob/trunk/test/-ext-/bug_reporter/test_bug_reporter.rb#L4 require_relative '../../lib/jit_support' class TestBugReporter < Test::Unit::TestCase + def yjit_enabled? + defined?(RubyVM::YJIT.enabled?) && RubyVM::YJIT.enabled? + end + def test_bug_reporter_add omit if ENV['RUBY_ON_BUG'] @@ -22,6 +26,7 @@ class TestBugReporter < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/-ext-/bug_reporter/test_bug_reporter.rb#L26 no_core = "Process.setrlimit(Process::RLIMIT_CORE, 0); " if defined?(Process.setrlimit) && defined?(Process::RLIMIT_CORE) args = ["--disable-gems", "-r-test-/bug_reporter", "-C", tmpdir] + args.push("--yjit") if yjit_enabled? # We want the printed description to match this process's RUBY_DESCRIPTION stdin = "#{no_core}register_sample_bug_reporter(12345); Process.kill :SEGV, $$" assert_in_out_err(args, stdin, [], expected_stderr, encoding: "ASCII-8BIT") ensure diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb index 6d2c0fa5cd..ed2bc3538c 100644 --- a/test/ruby/test_rubyoptions.rb +++ b/test/ruby/test_rubyoptions.rb @@ -778,6 +778,10 @@ class TestRubyOptions < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_rubyoptions.rb#L778 def assert_segv(args, message=nil) omit if ENV['RUBY_ON_BUG'] + # We want YJIT to be enabled in the subprocess if it's enabled for us + # so that the Ruby description matches. + args.unshift("--yjit") if self.class.yjit_enabled? + test_stdin = "" opt = SEGVTest::ExecOptions.dup list = SEGVTest::ExpectedStderrList -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/