From 4c210d0e8c44d22d0485afa49d07fe621d7be972 Mon Sep 17 00:00:00 2001 From: S-H-GAMELINKS Date: Wed, 24 Dec 2025 20:15:31 +0900 Subject: [PATCH] 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. --- gemfiles/testunit.gemfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gemfiles/testunit.gemfile b/gemfiles/testunit.gemfile index 30a9afc..24e0621 100644 --- a/gemfiles/testunit.gemfile +++ b/gemfiles/testunit.gemfile @@ -4,6 +4,9 @@ source 'https://rubygems.org' -gem 'test-unit' +# test-unit 3.7.4 changed `TestSuite#run` method signature. +# Earlier versions cause ArgumentError in test-queue's TestSuite subclass, +# crashing workers and causing the master process to hang indefinitely. +gem 'test-unit', '>= 3.7.4' gemspec path: '../'