Commit graph

119 commits

Author SHA1 Message Date
Koichi Sasada
cac6fe9023 add --stderr-on-failure option to test-all
Now all failure messages are printed to stdout. This option
makes all failure messages printed into stderr.
2022-01-26 09:56:09 +09:00
Takashi Kokubun
1a63468831
Prepare for removing RubyVM::JIT (#5262) 2021-12-13 23:07:46 -08:00
Nobuyoshi Nakada
3ff0a0b40c
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.
2021-11-09 15:20:44 +09:00
Vít Ondruch
5086c25f60 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].
2021-10-27 19:56:19 +09:00
Nobuyoshi Nakada
c7eac1be51
Retry hung up tests verbosely 2021-10-17 22:40:31 +09:00
Nobuyoshi Nakada
13716898df Retry hung tests after parallel runs 2021-10-17 16:33:58 +09:00
Nobuyoshi Nakada
478187e9a3 Timeout parallel test worker processes 2021-10-17 16:33:58 +09:00
Nobuyoshi Nakada
5de6e25144
Replace unpack with unpack1 2021-10-17 00:48:45 +09:00
Nobuyoshi Nakada
370fff98ce
Prefer require_relative 2021-10-15 18:47:25 +09:00
Nobuyoshi Nakada
679054208e
Use __dir__ 2021-10-15 15:07:31 +09:00
Nobuyoshi Nakada
cec61d16d2
Run JIT tests first when random order instead of no-sort 2021-10-10 19:23:52 +09:00
Nobuyoshi Nakada
fb9ea391cf
Default the test order to random 2021-10-10 18:30:33 +09:00
Nobuyoshi Nakada
fc913ad21d
Exclude also core_assertions.rb from backtraces 2021-10-09 16:17:37 +09:00
Nobuyoshi Nakada
7c98e673d7
Fix a typo since 688f2e1a89 2021-10-05 18:24:34 +09:00
Nobuyoshi Nakada
c4570acc86
Refactor ordering of tests
* Split the sorting types into classes.
* Apply the same sorting to method sorting under the parallel
  test.
2021-10-04 20:46:47 +09:00
Hiroshi SHIBATA
2982464a8e
Revert "Resolved conflict initializers"
This reverts commit 62db6e47b6.

  308183fffa is the correct solution
  about this.
2021-09-13 11:07:32 +09:00
Nobuyoshi Nakada
bbd105c445
Exclude option_parser from Test::Unit::Runner#inspect 2021-09-12 03:51:19 +09:00
Nobuyoshi Nakada
308183fffa
Prepend the modules in Test::Unit
Needs to override Test::Unit::Runner#run, so that RunCount#run
runs which increments @@run_count.  Previously it worked because
these methods were inserted between Test::Unit::Runner#run and
MiniTest::Unit#run.
2021-09-12 03:45:58 +09:00
Nobuyoshi Nakada
952806cdec
Update comments for minitest 2021-09-11 17:37:49 +09:00
Nobuyoshi Nakada
cd83e716d0
Update an option message 2021-09-11 17:32:42 +09:00
Nobuyoshi Nakada
911f62e681
Directly alias orig_run_suite 2021-09-11 17:19:02 +09:00
Nobuyoshi Nakada
46bde60df3
Remove method filter hack for minitest 2021-09-11 17:12:27 +09:00
Hiroshi SHIBATA
f73f9e1f89
Replace minitest to test for backtrace_filter 2021-09-11 15:17:38 +09:00
Hiroshi SHIBATA
d05383812a Replace Test::Assertion and Test::Skip to Test::Unit::AssertionFailedError and Test::Unit::PendedError 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
7cec81e073 Removed needless require 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
a3b0518672 Removed obsoleted constant 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
9b026ca39b Integrate Minitest to Test 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
0598e87abf Use prepend for override to status line 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
8ee38bdd7d Removed duplicated autorun method 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
62db6e47b6 Resolved conflict initializers 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
7ef0a4634c Removed unused _run_suites 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
988eda744c Removed deprecated process_args 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
206af4727c Merge poke methods 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
1fd2a66a93 Merge run methods 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
374cc7231e Removed VERSION constant 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
8ec187c091 Replace MiniTest::Unit to Test::Unit::Runner 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
c18e953937 Move MiniTest::Unit to under Test::Unit::Runner 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
3e32412e08 Fixed broken runner for make test-all 2021-09-11 08:48:03 +09:00
Hiroshi SHIBATA
7456cbdd09 Move test_order under the Test::Unit::TestCase 2021-09-11 08:48:03 +09:00
Nobuyoshi Nakada
265a725830
Handle non-succeeding reports mingled with dots 2021-08-29 16:32:55 +09:00
Nobuyoshi Nakada
e1c3cb9357
test: imply random test order by --seed option 2021-06-24 18:52:35 +09:00
Hiroshi SHIBATA
ded7dd9ccc
Use require_relative to use Minitest library for testing.
There is no reason to care for minitest gem.
2021-05-28 11:38:37 +09:00
Nobuyoshi Nakada
416956afa6
Set verbose flag at retrying 2021-02-14 17:47:46 +09:00
Takashi Kokubun
aacd2295d0
Debug the command used for gdb dump
It's not working
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3288206. I'm
debugging why.
2020-12-13 23:35:29 -08:00
Takashi Kokubun
246d7e4f1d
Dump a backtrace with gdb
Because Ruby often fails to dump a C backtrace.
2020-12-12 18:46:24 -08:00
Takashi Kokubun
f1757a88a4
Avoid leaving too many core files in /tmp
for CIs like ci.rvm.jp.
2020-12-03 21:33:35 -08:00
Takashi Kokubun
30fba5f37d
Do not require time and fileutils by default
I have no idea what I'm doing, but the previous commit caused lots of CI
failures like 1496949568 and this
place is the most suspicious.
2020-12-03 21:24:36 -08:00
Takashi Kokubun
067f45ecd3
Save a core file on a worker crash
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.
2020-12-03 21:01:25 -08:00
Takashi Kokubun
0734a6cd59
Revert "Report a full_message on a worker crash"
This reverts commit 00f046ef57.
It was not helpful for an issue I was debugging.
2020-12-03 20:55:36 -08:00
Koichi Sasada
e79f1941b2 tune parallel test
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.
2020-12-01 09:39:09 +09:00