Koichi Sasada
603ab70961
support concurrent btest execution
...
* `-j` option for concurrent test with threads
* `-jN` uses N threads
* `-j` uses nproc/2 threads
* Introduce `BT` struct to manage configurations
* Introduce `Assertion` to manage all assertions
* Remove all toplevel instance variables
* Show elapsed seconds at last
```
$ time make btest
...
real 0m37.319s
user 0m26.221s
sys 0m16.534s
$ time make btest TESTOPTS=-j
...
real 0m11.812s
user 0m36.667s
sys 0m21.872s
```
2022-02-06 03:05:47 +09:00
Koichi Sasada
fd0222caed
should check pending interrupts correctly.
...
rb_uninterruptible() disables any interrupts using handle_interrupt
feature (This function is used by `p`).
After this function, pending interrupts should be checked correctly,
however there is no chance to setup interrupt flag of working
threads, it means that nobody checks pending interrupts.
For example, it ignores terminate signal delivered at the end
of main thread and program can't stop.
This patch set interrupt flag if there are pending interrupts.
2020-04-09 12:51:51 +09:00
Koichi Sasada
21d8e69248
disable to show the maximum number of threads.
...
On Deiban 9 environment, the thread tests failed and
this maximum threads information can finish up the machine
resources. To check it, I turned-off showing this information.
2020-03-23 11:32:20 +09:00
Nobuyoshi Nakada
93b27c69cc
Show the failed message too
2019-12-12 23:26:35 +09:00
Nobuyoshi Nakada
0afee4d803
Show the failed message
2019-12-11 14:27:21 +09:00
Takashi Kokubun
fb67d4fc77
Move an unstable bootstraptest to pending
...
This has been unstable on AppVeyor mswin since the introduction
3fd83cb6fc
.
https://ci.appveyor.com/project/ruby/ruby/builds/27103307/job/j7xwjmsos2k22cck
Let's have it in pending.rb to be fixed.
2019-09-03 21:49:52 +09:00
Nobuyoshi Nakada
8827697ec4
Compare actual result
2019-08-14 00:23:19 +09:00
Samuel Williams
012e954b47
Improved fiber benchmarks. Increase number of iterations.
2019-07-12 11:56:51 +12:00
git
cbe06cd350
* remove trailing spaces, expand tabs.
2019-06-19 17:39:58 +09:00
Samuel Williams
69195fd9b2
Show thread and fiber limits as part of bootstrap tests.
2019-06-19 20:39:10 +12:00
Samuel Williams
3fd83cb6fc
Improve benchmarks and tests for threads.
2019-06-19 20:39:10 +12:00
k0kubun
59676f6d03
revert r65820 and retry assert_finish
...
From: MSP-Greg <greg.mpls@gmail.com>
5187ea768f
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 02:16:30 +00:00
k0kubun
5187ea768f
test_thread.rb: skip test_thread.rb broken for Windows
...
msys2.
https://ci.appveyor.com/project/ruby/ruby/builds/20419607/job/fuvrfcmrhxr1r1cr
https://ci.appveyor.com/project/ruby/ruby/builds/20395349/job/2nqewb06b5eanwea
https://ci.appveyor.com/project/ruby/ruby/builds/20382452/job/658pvl1cqolyrixm
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 01:28:43 +00:00
nobu
4b298ad77a
Use qualified names
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-30 06:22:30 +00:00
nobu
373a7006dd
btest: resource limit
...
* bootstraptest/test_thread.rb: rescue resource limitation errors.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 07:59:37 +00:00
akr
34ac0ea7bf
wait until the thread is stopped.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-21 04:54:46 +00:00
nobu
75cbab3bb8
test_thread.rb: remove garbage
...
* bootstraptest/test_thread.rb: remove a garbage line for debug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-08 01:02:49 +00:00
nobu
85521e60ee
bootstraptest/test_{fork,io,thread}.rb: reduce sleep times
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-07 19:57:46 +00:00
nobu
1dcc985092
fix matching
...
* bootstraptest/test_thread.rb: String#=~ does not accept String.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 12:59:09 +00:00
ko1
4ab37a13ce
* bootstraptest/test_thread.rb: rescue resource limitation errors.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-23 06:41:37 +00:00
nobu
10c8aa81fb
* bootstraptest/test_thread.rb: get rid of confusing ruby-mode.el
...
indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-01 14:42:52 +00:00
nobu
4136f8ce89
* bootstraptest/test_thread.rb: get rid of "invalid nest" error in
...
ruby-mode.el.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-01 14:42:50 +00:00
ko1
42e9fc4110
* bootstraptest/test_thread.rb: try to `join' each 100
...
threads.
This benchmark seems consuming long time on travis-ci
several times (and make `failure').
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-26 10:14:01 +00:00
mame
e59b9d35fc
* insns.def (onceinlinecache): add exclusion control for a region
...
between onceinlinecache and setinlinecache. [ruby-dev:39768]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-27 14:06:16 +00:00
mame
0ffb18de45
* bootstraptest/test_thread.rb: fix test. [Bug #2342 ]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-22 14:02:09 +00:00
usa
0676ac37be
* bootstraptest/test_thread.rb: please please please remember that there are
...
platforms that do not support fork.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-11 07:47:29 +00:00
nobu
4ba0fe5fd3
* thread_pthread.c (native_mutex_reinitialize_atfork): release and
...
re-acquire the lock at re-initialization.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-10 06:49:15 +00:00
usa
f6fbdf261e
* bootstraptest/test_thread.rb: propagate the exception within a thread to
...
outer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-24 01:30:00 +00:00
usa
1968717136
* test_thread.rb: DO NOT USE FORK WITHOUT RESCUE.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-19 00:56:44 +00:00
nobu
748fe216c2
* thread.c (rb_thread_atfork_internal): reinitialize global lock
...
at fork to get rid of deadlock. based on the patch from Hongli
Lai in [ruby-core:26783]. [ruby-core:26361]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-18 09:25:11 +00:00
mame
31c0e3385f
* thread.c (thread_cleanup_func): delete locking_mutex when thread
...
object become dummy because of fork. [ruby-core:26744]
[ruby-core:26745]
* bootstraptest/test_thread.rb: add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-15 15:10:49 +00:00
nobu
2620a84070
* bootstraptest/test_thread.rb: just check for normal exit.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-11 12:06:34 +00:00
akr
b205b5e7b6
fix tests for load_path.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-22 07:28:33 +00:00
usa
3eff6d398b
* test_thread.rb: broken test.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-26 05:01:03 +00:00
mame
c43236eaf7
* bootstraptest/test_thread.rb: fix for environment where fork is not
...
available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23 16:24:46 +00:00
mame
c55dd9b7d8
* thread.c (thread_cleanup_func): unlock all locked mutexes even when
...
forking. [ruby-core:22269]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23 16:20:06 +00:00
usa
e8d91f1213
* bootstraptest/test_thread.rb: ignore some exceptions.
...
[ruby-dev:36951]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-28 00:52:32 +00:00
ko1
03b2fc9adf
* bootstraptest/test_thread.rb: add a test.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-31 07:39:45 +00:00
akr
5c91367675
add ML ref.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-10 14:52:24 +00:00
nobu
1a5f1a8c69
* vm_core.h (rb_thread_t), vm.c (rb_thread_mark), process.c
...
(rb_last_status_get, rb_last_status_set, rb_last_status_clear):
moved last_status from rb_vm_t. [ruby-dev:35414]
* vm.c (th_init2): initialize last_status with nil.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-10 03:10:00 +00:00
mame
6f5aaff73b
* thread.c, vm_core.h, vm.c, thread_pthread.c, thread_win32.c: add
...
deadlock detection. [ruby-dev:35044]
* bootstraptest/test_thread.rb: add tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-12 13:01:38 +00:00
ko1
9e324fdd3e
* vm.c, eval_intern.h (PASS_PASSED_BLOCK):
...
set a VM_FRAME_FLAG_PASSED flag to skip this frame when
searching ruby-level-cfp.
* eval.c, eval_intern.h, proc.c: fix to check cfp. if there is
no valid ruby-level-cfp, cause RuntimeError exception.
[ruby-dev:34128]
* vm_core.h, vm_evalbody.c, vm.c, vm_dump.c, vm_insnhelper.c,
insns.def: rename FRAME_MAGIC_* to VM_FRAME_MAGIC_*.
* KNOWNBUGS.rb, bootstraptest/test*.rb: move solved bugs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-10 21:46:43 +00:00
ko1
39fcd1cdf2
* bootstraptest/test_knownbug.rb: move solved tests.
...
* bootstraptest/test_eval.rb, test_literal.rb, test_syntax.rb,
test_thread.rb: ditto.
* test/ruby/test_m17n.rb, test_proc.rb, test_sprintf.rb,
test_string.rb, test/ruby/test_struct.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-19 05:20:21 +00:00
akr
611e287498
* thread.c (rb_gc_save_machine_context): call FLUSH_REGISTER_WINDOWS
...
to mark the register stack from GC on another thread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-08 06:59:03 +00:00
matz
707c50d341
* thread.c (rb_thread_stop_timer_thread): should clear
...
timer_thread_id after stopping it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16136 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-22 04:26:44 +00:00
nobu
9c77076296
* thread.c (thread_join): remove the current thread from the join list
...
of the target thread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-22 04:13:01 +00:00
ko1
13b5b22ae6
* compile.c, compile.h: fix stack pointer issues.
...
calculate correct stack depth at compile time.
* insns.def (emptstack): remove it and add a new insn "adjuststack".
* bootstraptest/test_knownbug.rb: move/remove fixed test.
* bootstraptest/test_syntax.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-25 18:02:01 +00:00
usa
3b6f862b3a
* bootstraptest/test_{knownbug,thread}.rb: support fork-less platform.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-23 02:23:21 +00:00
nobu
3882b07c3a
* thread.c (thread_create_core): set thread group before creating
...
thread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-18 14:49:43 +00:00
ko1
5360e77db8
* thread.c: clear thread structure.
...
(TODO: survey that child process should clear mutex or not).
* bootstraptest/test_knownbug.rb, test_thread.rb: move a fixed test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-14 10:02:51 +00:00