231 Commits

Author SHA1 Message Date
naruse
a410ff68c2 merge revision(s) 61625,61626,61627:
extend timeout to 15 seconds for ARMv8 environment

	Show how many seconds it timeouts

	By this we can easily extend timeout.

	Extend timeout of test_clear_unreachable_keyword_args

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@61630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-01-05 20:40:54 +00:00
nobu
570642bf15 envutil.rb: define flush method
* test/lib/envutil.rb (verbose_warning): flush is called on STDOUT
  and STDERR sometimes.

From: Nobuyoshi Nakada <nobu@ruby-lang.org>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-18 04:23:16 +00:00
eregon
d5874f0fff Capture the values of globals in EnvUtil to restore to the original
* Avoids the thread-safety issues mentioned in r61192,
  when thread concurrently modify default Encodings or $VERBOSE.
  Their state will always be the original one once the test finishes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-12 23:41:50 +00:00
eregon
cf4d4c32f3 Revert r61192 and r61193
* More general fix coming.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-12 23:41:34 +00:00
eregon
c32ce5fc27 Do not change Encoding.default_internal in assert_raise_with_message
* It is not thread-safe: if two threads call it concurrently,
  the default_internal Encoding might not be restored, which causes
  many problems. The same applies for $VERBOSE, which might also not be
  restored to its original value but to the new value instead.
  This happens because reading the original value might capture the
  value already changed by EnvUtil.with_default_internal in another
  Thread. One solution could be to capture the value of these globals
  before running the test.
* Reverts part of r54522.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-12 21:51:53 +00:00
eregon
c895b54f14 Check that global encodings are not changed in test-all
* Check that Encoding.default_internal and Encoding.default_external
  are the same before and after every test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-12 21:32:13 +00:00
ko1
33201294eb Ignore failures related to threading.
* test/lib/tracepointchecker.rb: ignore "deletion trace" check
  when there are threads other than the main thread.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-27 02:11:36 +00:00
nobu
4f5357689b leakchecker.rb: no conversion
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-26 02:11:24 +00:00
ko1
23e452b17b cleanup hook cleanup code.
* vm_trace.c: before this patch, deleted hooks are remvoed at
  *the beggining* of hooks (exec_hooks_precheck).
  This patch cleanup deleted hooks at
  (1) just after hook is deleted (TracePoint#disable and so on)
  (2) just after executing hooks (exec_hooks_postcheck)
  Most of time (1) is enough, but if some threads running hooks,
  we need to wait cleaning up deleted hooks until threads finish
  running the hooks. This is why (2) is introduced (and this is
  why current impl cleanup deleted hooks at the beggining of hooks).

* test/lib/tracepointchecker.rb: check also the number of delete
  waiting hooks.

* cont.c (cont_restore_thread): fix VM->trace_running count.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-16 02:47:58 +00:00
nobu
fdb64a1a44 envutil.rb: preserve RUBYLIB
* test/lib/envutil.rb (invoke_ruby): preserve RUBYLIB which is
  set by runruby.rb and necessary to load standard libraries.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-13 01:58:18 +00:00
nobu
fe1ad67c28 assertions.rb: fix return in assert_raise
* test/lib/test/unit/assertions.rb (assert_raise): should fail if
  returned gently in the given block without any exceptions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-02 12:29:33 +00:00
nobu
30d23ec903 multiple arguments to write
Make write methods of IO-like objects accept multiple arguments,
as well as IO#write.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-23 14:05:07 +00:00
kazu
dabdec31e4 Use caller with length to reduce unused strings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-21 14:40:03 +00:00
nobu
b1ef4d8096 envutil.rb: precommand in invoke_ruby [ci skip]
* test/lib/envutil.rb (invoke_ruby): add precommand option to
  invoke ruby via some other commands, e.g., sudo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-15 02:20:20 +00:00
kazu
6064132c42 Remove unnecessary require 'thread'
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-08 07:00:01 +00:00
nobu
ae6625c546 assertions.rb: AllFailures#message encoding
* test/lib/test/unit/assertions.rb (AllFailures#message): put
  indented messages back to the original encoding, to get rid of
  Encoding::CompatibilityError when key has non-ASCII characters.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-01 11:59:45 +00:00
nobu
e5b6c9c5e4 assertions.rb: frozen string buffer
* test/lib/test/unit/assertions.rb (assert_pattern_list): make
  frozen string literals modifiable as buffers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-07-16 15:28:50 +00:00
nobu
1d6c1d20fd assertions.rb: syntax_check for other impl
* test/lib/test/unit/assertions.rb (syntax_check): use eval
  instead of RubyVM::InstructionSequence.compile so that other
  implementations can share the tests.
  [ruby-core:81935] [Bug #13723]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-07-08 02:22:20 +00:00
ko1
a48fecd3b9 catch up frozen_string_literal: true.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-06-22 05:51:43 +00:00
hsbt
8ae9de372a Fixed missing handling for frozen object at r59121.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-06-20 11:43:05 +00:00
hsbt
d5f86e836f Specify frozen_string_literal: true.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-06-20 11:10:37 +00:00
nobu
b89367d6d5 test/unit.rb: close jobserver
* test/lib/test/unit.rb (Test::Unit::Parallel#flush_job_tokens):
  close jobserver auth fds aflter flush, not to  release tokens
  more than acquired.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-06-18 04:29:04 +00:00
normal
e6e292121a test: attempt to reduce failures in assert_cpu_usage_low
Try to make this test less fragile by taking into account
the worst case kernel timing resolution.
[ruby-core:81540]

* test/lib/test/unit/assertions.rb (assert_cpu_usage_low):
  clamp measurement to minimum measurable time and warn
  about tests being too short to measure
* test/ruby/test_io.rb (test_copy_stream_no_busy_wait):
  remove pct kwarg and rely on assert_cpu_usage_low defaults

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-06-03 01:04:30 +00:00
nobu
76be4743ba test_rubyoptions.rb: ruby-runner sets $0 to install name now
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-30 11:59:26 +00:00
normal
109ccfdb2c tests: increase CPU percentage threshold for assert_cpu_usage_low
When sleeping for the tick rate of 100ms (defined in
thread_pthread.c) as we do in test/ruby/test_io.rb
(test_copy_stream_no_busy_wait), it may not be possible to
measure with <= 10ms resolution on 100HZ systems (CONFIG_HZ in
the Linux kernel).  So increase the threshold to 15ms (10ms +
5ms slack for slow systems).

* test/lib/test/unit/assertions.rb (assert_cpu_usage_low):
  increase pct default value [ruby-core:81427]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-28 01:43:38 +00:00
normal
71dca4b60d test for IO.copy_stream CPU usage (r58534)
I'm likely to make similar mistakes in the future when working
on Fiber auto-scheduling.  Start adding assertions for existing
code, first.

* test/ruby/test_io.rb (test_copy_stream_no_busy_wait): added
* test/lib/test/unit/assertions.rb (assert_cpu_usage_low): added

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-27 07:23:02 +00:00
ko1
7d52ed594e use timeout scale.
* test/lib/envutil.rb: introduce EnvUtil.apply_timeout_scale to use
  this scale from outside.

* test/ruby/test_thread.rb (test_fork_in_thread): respect timeout scale.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-25 23:43:33 +00:00
nobu
73d797ad48 assertions.rb: AllFailures#foreach
* test/lib/test/unit/assertions.rb (AllFailures#foreach):
  shortcircuit for `each` and `AllFailures#for`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-24 07:57:18 +00:00
nobu
fab2a5ed6b test/unit.rb: fix returning job tokens
* test/lib/test/unit.rb (_run_parallel): flush job tokens after
  quitting workers when normally finished too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-16 15:17:39 +00:00
naruse
0e7c81a713 fix words
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-16 05:02:23 +00:00
nobu
6657567eba fix up r57167
* test/lib/minitest/unit.rb (MiniTest::Unit#_run_anything): stop
  if any errors or failures.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-10 23:52:14 +00:00
nobu
93955c7560 Add diagnostic reports section header [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-23 14:51:08 +00:00
nobu
8284de591f assert_syntax_error returns the exception [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-23 14:47:31 +00:00
nobu
f9ca643683 thread.c: refine stream closed message
* thread.c (Init_Thread): [EXPERIMENTAL] refine the "stream
  closed" special exception message, by explicating that it is
  caused by threading.  [ruby-core:80583] [Bug #13405]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-09 05:09:44 +00:00
nobu
1ec8873818 test/unit.rb: no jobserver in workers
* test/lib/test/unit.rb (Test::Unit::Parallel#process_args):
  worker processes do not access job server.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-09 01:23:01 +00:00
nobu
5c79f6dbb7 fix condition of assert_not_respond_to
* test/lib/test/unit/assertions.rb (assert_not_respond_to): fix
  condition to assert.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-07 04:00:56 +00:00
nobu
495b2a246f assert_not_respond_to private method
* test/lib/test/unit/assertions.rb (assert_not_respond_to): allow
  private flag as well as assert_respond_to.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-07 03:56:16 +00:00
nobu
0cd8d9714a assert_respond_to non-private method
* test/lib/test/unit/assertions.rb (assert_respond_to): do not
  call super class assert_respond_to when false priv is given.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-07 03:56:15 +00:00
nobu
04eb385192 envutil.rb: basename for diagnostic_reports
* test/lib/envutil.rb (EnvUtil.diagnostic_reports): diagnostic
  report file uses base name only.  [ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-14 04:16:02 +00:00
naruse
a3990118e6 Supress warning: instance variable @repeat_count not initialized
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-07 05:11:02 +00:00
nobu
033c4a083d test: use RbConfig::Limits
* test/lib/envutil.rb: rbconfig/sizeof may not be available when
  cross-compiling.  use RbConfig::Limits instead of calculating
  limits of Fixnum with hard-coded CHAR_BIT.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-02 04:54:19 +00:00
nobu
a9925e2234 assertions.rb: ignore exit in child
* test/lib/test/unit/assertions.rb (assert_separately): ignore
  SystemExit.  unsuccessful exit still fails an assertion later.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-20 10:10:08 +00:00
nobu
fca3cf6637 envutil.rb: diagnostic_reports for ruby-runner
* test/lib/envutil.rb (EnvUtil.diagnostic_reports): ruby-runner
  execs "RUBY_INSTALL_NAME" file, so search by that name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-20 02:16:22 +00:00
nobu
0f9554efa1 parallel.rb: fix intervention
* test/lib/test/unit/parallel.rb (_report): send a response and a
  newline atomically, to get rid of intervention with "p" which
  runs in a separate thread.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-10 01:13:22 +00:00
nobu
7511130721 test/unit.rb: old GNU make
* test/lib/test/unit.rb (Test::Unit::Parallel#non_options):
  support old GNU make, which uses --jobserver-fds option instead
  of --jobserver-auth.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-07 08:16:50 +00:00
nobu
a02a8dfa5a test/unit.rb: most-asserted
* test/lib/test/unit.rb (Statistics#record): record most asserted
  tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-07 05:19:29 +00:00
nobu
8dedf08b52 test/unit.rb: defined
* test/lib/test/unit.rb (Test::Unit::Statistics#record): check if
  @longest is set first.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-07 03:58:07 +00:00
nobu
406c5252a2 test/unit: record in parallel
* test/lib/test/unit.rb (Test::Unit::Parallel#deal): deal with
  record.

* test/lib/test/unit/parallel.rb (Test::Unit::Worker#record):
  report test records to the master.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-07 03:55:47 +00:00
nobu
10c51ff5ce test/unit.rb: statistics
* test/lib/test/unit.rb (Test::Unit::Statistics): show statistics.
  only --longest option is implemented right now.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-07 02:49:04 +00:00
naruse
643a935e96 @job_tokens is defined iff @jobserver is true
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-05 16:07:30 +00:00