| Age | Commit message (Collapse) | Author |
|
5086c25f6015558877f85c3f1c014780b08fd3ce,3ff0a0b40c2e1fbdad2286f1dafe837f822d0e0d: [Backport #16936]
Properly exclude test cases.
Lets consider the following scenario:
~~~
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):001:0> p suite
OpenSSL::TestEC
=> OpenSSL::TestEC
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):002:0> p all_test_methods
["test_ECPrivateKey", "test_ECPrivateKey_encrypted", "test_PUBKEY", "test_check_key", "test_derive_key", "test_dh_compute_key", "test_dsa_sign_asn1_FIPS186_3", "test_ec_group", "test_ec_key", "test_ec_point", "test_ec_point_add", "test_ec_point_mul", "test_generate", "test_marshal", "test_sign_verify", "test_sign_verify_raw"]
=>
["test_ECPrivateKey",
"test_ECPrivateKey_encrypted",
"test_PUBKEY",
"test_check_key",
"test_derive_key",
"test_dh_compute_key",
"test_dsa_sign_asn1_FIPS186_3",
"test_ec_group",
"test_ec_key",
"test_ec_point",
"test_ec_point_add",
"test_ec_point_mul",
"test_generate",
"test_marshal",
"test_sign_verify",
"test_sign_verify_raw"]
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):003:0> p filter
/\A(?=.*)(?!.*(?-mix:(?-mix:memory_leak)|(?-mix:OpenSSL::TestEC.test_check_key)))/
=> /\A(?=.*)(?!.*(?-mix:(?-mix:memory_leak)|(?-mix:OpenSSL::TestEC.test_check_key)))/
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):004:0> method = "test_check_key"
=> "test_check_key"
~~~
The intention here is to exclude the `test_check_key` test case.
Unfortunately this does not work as expected, because the negative filter
is never checked:
~~~
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):005:0> filter === method
=> true
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):006:0> filter === "#{suite}##{method}"
=> false
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):007:0> filter === method || filter === "#{suite}##{method}"
=> true
~~~
Therefore always filter against the fully qualified method name
`#{suite}##{method}`, which should provide the expected result.
However, if plain string filter is used, keep checking also only the
method name.
This resolves [Bug #16936].
---
tool/lib/test/unit.rb | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
Filter method names only if filtering method name only
If sole `filter` option doesn't seem including test case name,
match with method name only.
And if the filter is a Regexp or String, it never matches method
name symbols.
---
tool/lib/test/unit.rb | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
|
|
It's not working
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3288206. I'm
debugging why.
|
|
Because Ruby often fails to dump a C backtrace.
|
|
for CIs like ci.rvm.jp.
|
|
I have no idea what I'm doing, but the previous commit caused lots of CI
failures like https://github.com/ruby/ruby/runs/1496949568 and this
place is the most suspicious.
|
|
CI failures like
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3280458 doesn't
provide any useful information, and it doesn't leave a core file in a CI
environment because a test like `Process.kill(:TRAP, $$)` overwrites in
a next run very quickly.
Thus I'd like to keep core files in /tmp.
|
|
This reverts commit 00f046ef57f9da7f5248f9ef9d55702ddc407bf1.
It was not helpful for an issue I was debugging.
|
|
This patch contains the fowllowing hacks:
(1) Add "--timetable-data=FILE" option for test-all
This option enables to dump timeline event
contains worker, suite, and start/end time.
(2) remove TestJIT in test_jit_debug.rb on parallel test.
it is duplicated test.
(3) move test_jit.rb and test_jit_debug.rb at first
because these two tests are bottleneck of parallel tests.
On my environment, `make test-all TESTS=-j12` reduced the total time
190 seconds -> 140 seconds.
Notes:
Merged: https://github.com/ruby/ruby/pull/3826
|
|
A worker crash happens very often, but we're not sure why.
I'd like to know a backtrace if it's available.
|
|
Regexp literals are frozen, and also dynamically comppiled Regexp
literals (/#{expr}/) are frozen.
Notes:
Merged: https://github.com/ruby/ruby/pull/3676
|
|
Run tests in the order given in the command line.
|
|
As well as worker processes do in Test::Unit::Worker#run.
|
|
There is a test directory named test/-ext-. Because this directry
starts with a hyphen, we have to cheat test/unit in order for it to
run the tests underneath. TESTS='-- -ext' worked for a long time.
Let's not break that maneuver.
|
|
Now --test-order=random is simply ignored. This patch respect
this option.
Notes:
Merged: https://github.com/ruby/ruby/pull/2932
|
|
`--seed N` option is just ignored so respect this option.
[Feature #16655]
Also making "Run options" display pretty.
|
|
79eb5e1acac2339c6ec71db723298bdfcd92b233 implemented
RUBY_TEST_GC_COMPACT=1 so why not make it also possible via the command
line argument.
|
|
This one allocation of Method object is worth avoiding. We don't
want to test UnboundMethod#bind right here. GC need not run.
|
|
|
|
`make test-all TESTS=name` can specify running test files by name.
name can be dirname ('dir/') or a file ('.../test_foo.rb'). This
patch complement `test_` prefix for a test. So we only need to
specify `TESTS=ruby/hash` which means `TESTS=ruby/test_hash.rb`.
|
|
|
|
|
|
Moved NoMemoryError hook from AutoRunner.run to Runner#run, so
it will work even in non-autorunning mode.
|
|
|
|
tool/test/runner.rb had been copied from test/runner.rb.
test/runner.rb was for `make test-all`, and tool/test/runner.rb was for
`make test-testframework` and `make test-tool`.
But I want to avoid the code clones.
This change makes tool/test/runner.rb support --test-target-dir option
which allows tool/test/runner.rb to run `make test-all`.
Now we can remove test/runner.rb.
|
|
Same as 66299e7ca83d379d13abaa5411f3e0419334cabb
|
|
for test-all rule, we can specify a file with TESTS option like
`TESTS=test_xxx.rb`. However, we can eliminate last '.rb' suffix
so this patch try with '.rb' suffix if the given path is not available.
|
|
|