Give an option to increase the timeout in tests.
Because setting the option makes some tests stable that are currently randomly failing with error on especially s390x and aarch64. We observed the failing tests are calling `assert_in_out_err` method calling `invoke_ruby` calling method. Then when the `th_stdout.join(timeout)` or `th_stderr.join(timeout)` returns `nil` as thread timeout in `invoke_ruby` method, it causes the error. [1][2] The `test_timeout_scale` macro is to set the environment variable `RUBY_TEST_TIMEOUT_SCALE` to increase the timeout in `apply_timeout_scale` method as <new timeout> = <timeout> * <timeout scale>. As an example, `TestBugReporter#test_bug_reporter_add` test's maximum thread timeout was 56+ seconds for the default timeout 10 seconds. [3] In this case setting `RUBY_TEST_TIMEOUT_SCALE=6` (6 * 10 = 60) is good enough for 56+ seconds. [1] https://github.com/ruby/ruby/blob/v2_7_1/tool/lib/envutil.rb#L149 [2] https://bugs.ruby-lang.org/issues/16492#note-8 [3] https://bugs.ruby-lang.org/issues/16492#note-4
This commit is contained in:
parent
a4dab688e7
commit
fd1c2abaf1
1 changed files with 4 additions and 1 deletions
|
|
@ -861,7 +861,10 @@ MSPECOPTS="$MSPECOPTS -P 'File.utime allows Time instances in the far future to
|
|||
MSPECOPTS="$MSPECOPTS -P 'File.lchmod returns false from \#respond_to?'"
|
||||
MSPECOPTS="$MSPECOPTS -P 'File.lchmod raises a NotImplementedError when called'"
|
||||
|
||||
make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS"
|
||||
# Give an option to increase the timeout in tests.
|
||||
# https://bugs.ruby-lang.org/issues/16921
|
||||
%{?test_timeout_scale:RUBY_TEST_TIMEOUT_SCALE="%{test_timeout_scale}"} \
|
||||
make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS"
|
||||
|
||||
%files
|
||||
%license BSDL
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue