Skip to content

Commit b9db718

Browse files
authored
Merge pull request #35 from ruby/claude/quirky-tharp-cfbc95
Read RUBY_TEST_TIMEOUT_SCALE in EnvUtil
2 parents 4128efb + b5da68b commit b9db718

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

‎lib/envutil.rb‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ def capture_global_values
8181
self.timeout_scale = 10
8282
end
8383

84+
# Read here so that runners other than tool/lib/test/unit.rb, such as
85+
# the test-unit gem in test-bundled-gems, also scale timeouts.
86+
scale = (ENV["RUBY_TEST_TIMEOUT_SCALE"] || ENV["RUBY_TEST_SUBPROCESS_TIMEOUT_SCALE"]).to_f
87+
self.timeout_scale = scale if scale > 0
88+
8489
def apply_timeout_scale(t)
8590
if scale = EnvUtil.timeout_scale
8691
t * scale

‎test/test_envutil.rb‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22

33
require "test/unit"
44
require "envutil"
5+
require "core_assertions"
56

67
class TestEnvUtil < Test::Unit::TestCase
8+
include Test::Unit::CoreAssertions
9+
710
def test_rubybin_points_to_a_ruby_executable
811
assert(File.executable?(EnvUtil.rubybin))
912
end
@@ -17,6 +20,10 @@ def test_apply_timeout_scale
1720
EnvUtil.timeout_scale = original_scale
1821
end
1922

23+
def test_timeout_scale_from_env
24+
assert_separately([{"RUBY_TEST_TIMEOUT_SCALE" => "2.5"}], "assert_equal(2.5, EnvUtil.timeout_scale)")
25+
end
26+
2027
def test_invoke_ruby_captures_output_and_status
2128
stdout, stderr, status = EnvUtil.invoke_ruby(
2229
["-e", "STDOUT.print('out'); STDERR.print('err')"],

0 commit comments

Comments
 (0)