Refactor the settings of test-all out

test/runner.rb and tool/lib/test/unit/parallel.rb must use the same
settings. However, some settings were copied and pasted, while some were
added only to test/runner.rb.
This changeset creates tool/test/init.rb for all settings of test-unit,
which is loaded not only by test/runner.rb but also
tool/lib/test/unit/parallel.rb.

Background: the GEM_HOME environment variable was removed in
test/runner.rb, which prohibit `require "rake"` (note that rake is a
bundled gem). However the parallel mode didn't refrect this setting,
i.e., `require "rake"` was allowed.
This leads to an inconsistency, which actually affected a test test
defines s test class *only when* `require "rake"` is successful.
(test/rubygems/test_gem_package_task.rb)

https://github.com/ruby/ruby/actions/runs/6807729617/job/18511055636#step:8:1714
```
  /home/runner/work/ruby/ruby/src/tool/lib/test/unit.rb:729:in `const_get': uninitialized constant TestGemPackageTask (NameError)

                suites.map! {|r| ::Object.const_get(r[:testcase])}
                                         ^^^^^^^^^^
```
This commit is contained in:
Yusuke Endoh 2023-11-15 17:52:46 +09:00
parent 960a031a06
commit 5bf75c20a2
4 changed files with 21 additions and 22 deletions

View File

@ -1,9 +1,5 @@
# frozen_string_literal: true
# Should be done in rubygems test files?
ENV["GEM_SKIP"] = ENV["GEM_HOME"] = ENV["GEM_PATH"] = "".freeze
ENV.delete("RUBY_CODESIGN")
Warning[:experimental] = false
# NOTE: Do not add any settings here for test-all. Instead, please add it to ../tool/test/init.rb.
require_relative '../tool/test/runner'

View File

@ -1,12 +1,6 @@
# frozen_string_literal: true
$LOAD_PATH.unshift "#{__dir__}/../.."
require_relative '../../test/unit'
require_relative '../../profile_test_all' if ENV.key?('RUBY_TEST_ALL_PROFILE')
require_relative '../../tracepointchecker'
require_relative '../../zombie_hunter'
require_relative '../../iseq_loader_checker'
require_relative '../../gc_checker'
require_relative "../../../test/init"
module Test
module Unit

18
tool/test/init.rb Normal file
View File

@ -0,0 +1,18 @@
# This file includes the settings for "make test-all".
# Note that this file is loaded not only by test/runner.rb but also by tool/lib/test/unit/parallel.rb.
ENV["GEM_SKIP"] = ENV["GEM_HOME"] = ENV["GEM_PATH"] = "".freeze
ENV.delete("RUBY_CODESIGN")
Warning[:experimental] = false
$LOAD_PATH.unshift File.expand_path("../lib", __dir__)
require 'test/unit'
require "profile_test_all" if ENV.key?('RUBY_TEST_ALL_PROFILE')
require "tracepointchecker"
require "zombie_hunter"
require "iseq_loader_checker"
require "gc_checker"
require_relative "../test-coverage.rb" if ENV.key?('COVERAGE')

View File

@ -1,16 +1,7 @@
# frozen_string_literal: true
require 'rbconfig'
$LOAD_PATH.unshift File.expand_path("../lib", __dir__)
require 'test/unit'
require "profile_test_all" if ENV.key?('RUBY_TEST_ALL_PROFILE')
require "tracepointchecker"
require "zombie_hunter"
require "iseq_loader_checker"
require "gc_checker"
require_relative "../test-coverage.rb" if ENV.key?('COVERAGE')
require_relative "init"
case $0
when __FILE__