summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-06-11 11:03:55 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-06-11 23:15:46 +0900
commiteb016d835373cdce6f08694e527d7a569c208cb5 (patch)
tree00fa9bee45b2271031787f55134bfcea2f69e788
parent39ae88ad0dd0f8d7cf732e8567af13e7f2ce9748 (diff)
Generalize timeout_scale
* test/lib/test/unit.rb (Test::Unit::TimeoutOption): renamed SubprocessOption. * test/lib/test/unit.rb (Test::Unit::TimeoutOption#setup_options): prefer `--timeout-scale` option. * test/lib/test/unit.rb (Test::Unit::TimeoutOption#non_options): prefer `ENV["RUBY_TEST_TIMEOUT_SCALE"]`.
-rw-r--r--appveyor.yml8
-rw-r--r--test/lib/envutil.rb4
-rw-r--r--test/lib/test/unit.rb17
-rw-r--r--wercker.yml4
4 files changed, 17 insertions, 16 deletions
diff --git a/appveyor.yml b/appveyor.yml
index 75c530773c..06edf957b8 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -71,9 +71,9 @@ for:
- set /a JOBS=%NUMBER_OF_PROCESSORS%
- nmake -l "TESTOPTS=-v -q" btest
- nmake -l "TESTOPTS=-v -q" test-basic
- - nmake -l "TESTOPTS=-q --subprocess-timeout-scale=3.0 --excludes=../test/excludes/_appveyor -j%JOBS% --exclude readline --exclude win32ole --exclude test_bignum --exclude test_syntax --exclude test_open-uri --exclude test_bundled_ca --exclude test_gc_compact" test-all
+ - nmake -l "TESTOPTS=-q --timeout-scale=3.0 --excludes=../test/excludes/_appveyor -j%JOBS% --exclude readline --exclude win32ole --exclude test_bignum --exclude test_syntax --exclude test_open-uri --exclude test_bundled_ca --exclude test_gc_compact" test-all
# separately execute tests without -j which may crash worker with -j.
- - nmake -l "TESTOPTS=-v --subprocess-timeout-scale=3.0 --excludes=../test/excludes/_appveyor" test-all TESTS="../test/win32ole ../test/ruby/test_bignum.rb ../test/ruby/test_syntax.rb ../test/open-uri/test_open-uri.rb ../test/rubygems/test_bundled_ca.rb ../test/ruby/test_gc_compact.rb"
+ - nmake -l "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor" test-all TESTS="../test/win32ole ../test/ruby/test_bignum.rb ../test/ruby/test_syntax.rb ../test/open-uri/test_open-uri.rb ../test/rubygems/test_bundled_ca.rb ../test/ruby/test_gc_compact.rb"
- nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
-
matrix:
@@ -118,9 +118,9 @@ for:
- if not "%GEMS_FOR_TEST%" == "" ..\install\bin\gem install --no-document %GEMS_FOR_TEST%
test_script:
- mingw32-make test
- - mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor -j %JOBS% --exclude win32ole --exclude test_open-uri --exclude test_gc_compact"
+ - mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor -j %JOBS% --exclude win32ole --exclude test_open-uri --exclude test_gc_compact"
# separately execute tests without -j which may crash worker with -j.
- - mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor" TESTS="../ruby/test/win32ole ../ruby/test/open-uri/test_open-uri.rb ../ruby/test/ruby/test_gc_compact.rb"
+ - mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor" TESTS="../ruby/test/win32ole ../ruby/test/open-uri/test_open-uri.rb ../ruby/test/ruby/test_gc_compact.rb"
- mingw32-make test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
notifications:
# Using "Webhook" with templated body to skip notification on Pull Request
diff --git a/test/lib/envutil.rb b/test/lib/envutil.rb
index f9c0e57fcf..b4eb63da90 100644
--- a/test/lib/envutil.rb
+++ b/test/lib/envutil.rb
@@ -45,7 +45,7 @@ module EnvUtil
RUBYLIB = ENV["RUBYLIB"]
class << self
- attr_accessor :subprocess_timeout_scale
+ attr_accessor :timeout_scale
attr_reader :original_internal_encoding, :original_external_encoding,
:original_verbose
@@ -57,7 +57,7 @@ module EnvUtil
end
def apply_timeout_scale(t)
- if scale = EnvUtil.subprocess_timeout_scale
+ if scale = EnvUtil.timeout_scale
t * scale
else
t
diff --git a/test/lib/test/unit.rb b/test/lib/test/unit.rb
index 16db7ad9c3..3df6774d61 100644
--- a/test/lib/test/unit.rb
+++ b/test/lib/test/unit.rb
@@ -195,10 +195,10 @@ module Test
class Worker
def self.launch(ruby,args=[])
- scale = EnvUtil.subprocess_timeout_scale
+ scale = EnvUtil.timeout_scale
io = IO.popen([*ruby, "-W1",
"#{File.dirname(__FILE__)}/unit/parallel.rb",
- *("--subprocess-timeout-scale=#{scale}" if scale),
+ *("--timeout-scale=#{scale}" if scale),
*args], "rb+")
new(io, io.pid, :waiting)
end
@@ -1031,11 +1031,11 @@ module Test
end
end
- module SubprocessOption
+ module TimeoutOption
def setup_options(parser, options)
super
- parser.separator "subprocess options:"
- parser.on '--subprocess-timeout-scale NUM', "Scale subprocess timeout", Float do |scale|
+ parser.separator "timeout options:"
+ parser.on '--timeout-scale NUM', '--subprocess-timeout-scale NUM', "Scale timeout", Float do |scale|
raise OptionParser::InvalidArgument, "timeout scale must be positive" unless scale > 0
options[:timeout_scale] = scale
end
@@ -1043,8 +1043,9 @@ module Test
def non_options(files, options)
if scale = options[:timeout_scale] or
- (scale = ENV["RUBY_TEST_SUBPROCESS_TIMEOUT_SCALE"] and (scale = scale.to_f) > 0)
- EnvUtil.subprocess_timeout_scale = scale
+ (scale = ENV["RUBY_TEST_TIMEOUT_SCALE"] || ENV["RUBY_TEST_SUBPROCESS_TIMEOUT_SCALE"] and
+ (scale = scale.to_f) > 0)
+ EnvUtil.timeout_scale = scale
end
super
end
@@ -1061,7 +1062,7 @@ module Test
include Test::Unit::LoadPathOption
include Test::Unit::GCStressOption
include Test::Unit::ExcludesOption
- include Test::Unit::SubprocessOption
+ include Test::Unit::TimeoutOption
include Test::Unit::RunCount
class << self; undef autorun; end
diff --git a/wercker.yml b/wercker.yml
index ac9c2ab8d2..c8b252567c 100644
--- a/wercker.yml
+++ b/wercker.yml
@@ -61,7 +61,7 @@ mjit-test1:
code: /usr/bin/sudo -H -u test -- make test-spec RUN_OPTS="--disable-gems --jit --jit-warnings"
- script:
name: make test-all (JIT)
- code: /usr/local/bin/mjit-debug-on-fail /usr/bin/sudo -H -u test -- make test-all RUN_OPTS="--disable-gems --jit-verbose=1 --jit-save-temps --jit-warnings" TESTOPTS="-v --color=never --job-status=normal --longest 10 --subprocess-timeout-scale=3.0 --excludes=test/excludes/_wercker/jit"
+ code: /usr/local/bin/mjit-debug-on-fail /usr/bin/sudo -H -u test -- make test-all RUN_OPTS="--disable-gems --jit-verbose=1 --jit-save-temps --jit-warnings" TESTOPTS="-v --color=never --job-status=normal --longest 10 --timeout-scale=3.0 --excludes=test/excludes/_wercker/jit"
# --jit-wait (test, test-spec)
- script:
@@ -100,7 +100,7 @@ mjit-test2:
# --jit-wait (test-all)
- script:
name: make test-all (JIT wait)
- code: /usr/bin/sudo -H -u test -- make test-all RUN_OPTS="--disable-gems --jit-wait --jit-warnings" TESTOPTS="-v --test-order=random --color=never --job-status=normal --subprocess-timeout-scale=3.0 --excludes=test/excludes/_wercker/jit-wait"
+ code: /usr/bin/sudo -H -u test -- make test-all RUN_OPTS="--disable-gems --jit-wait --jit-warnings" TESTOPTS="-v --test-order=random --color=never --job-status=normal --timeout-scale=3.0 --excludes=test/excludes/_wercker/jit-wait"
after-steps:
- wantedly/pretty-slack-notify: