Skip to content

Commit 4c210d0

Browse files
committed
Fix testunit CI hang by requiring test-unit >= 3.7.4
The 3.3 testunit CI job was hanging for 6 hours and timing out. Problem: test-unit 3.7.4 changed the TestSuite#run method signature: - 3.7.3: run(result, run_context: nil, &block) - 3.7.4+: run(worker_context, &block) test-queue's TestSuite subclass uses `def run(*); super; end`, which fails on 3.7.3 when test-unit internally calls run with 2 arguments: ArgumentError: wrong number of arguments (given 2, expected 1) The worker process crashes, but the master process keeps waiting indefinitely, causing the hang. Reproduction: Hangs (with test-unit 3.7.3): gem install test-unit -v 3.7.3 BUNDLE_GEMFILE=gemfiles/testunit.gemfile bundle exec testunit-queue ./test/examples/*_testunit.rb Works (with test-unit >= 3.7.4): gem install test-unit -v 3.7.5 BUNDLE_GEMFILE=gemfiles/testunit.gemfile bundle exec testunit-queue ./test/examples/*_testunit.rb Solution: Pin test-unit to >= 3.7.4 in gemfiles/testunit.gemfile.
1 parent e1674e1 commit 4c210d0

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

gemfiles/testunit.gemfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
source 'https://rubygems.org'
66

7-
gem 'test-unit'
7+
# test-unit 3.7.4 changed `TestSuite#run` method signature.
8+
# Earlier versions cause ArgumentError in test-queue's TestSuite subclass,
9+
# crashing workers and causing the master process to hang indefinitely.
10+
gem 'test-unit', '>= 3.7.4'
811

912
gemspec path: '../'

0 commit comments

Comments
 (0)