[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]