зеркало из https://github.com/github/ruby.git
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"]`.
This commit is contained in:
Родитель
39ae88ad0d
Коммит
eb016d8353
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
Загрузка…
Ссылка в новой задаче