diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-07-24 16:35:38 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-07-24 16:36:33 +0900 |
commit | e0a7e5e13141a06103673b9d4ff21ca864ec38f9 (patch) | |
tree | e26fffdbaea56eacd314c438fdd82144bf4e9f8a | |
parent | 114f85ecec5ad34531b77c0248f4a3bf070404d1 (diff) | |
download | ruby-e0a7e5e13141a06103673b9d4ff21ca864ec38f9.tar.gz |
Kill bundled gem tests when interrupted
-rw-r--r-- | common.mk | 2 | ||||
-rw-r--r-- | tool/test-bundled-gems.rb | 12 |
2 files changed, 11 insertions, 3 deletions
@@ -1407,7 +1407,7 @@ no-test-bundled-gems: BUNDLED_GEMS = test-bundled-gems-run: $(PREPARE_BUNDLED_GEMS) - $(Q) $(XRUBY) $(tooldir)/test-bundled-gems.rb $(BUNDLED_GEMS) + $(gnumake_recursive)$(Q) $(XRUBY) $(tooldir)/test-bundled-gems.rb $(BUNDLED_GEMS) test-bundler-precheck: $(TEST_RUNNABLE)-test-bundler-precheck no-test-bundler-precheck: diff --git a/tool/test-bundled-gems.rb b/tool/test-bundled-gems.rb index 6312e1872d..1bdf2fa95a 100644 --- a/tool/test-bundled-gems.rb +++ b/tool/test-bundled-gems.rb @@ -71,15 +71,23 @@ File.foreach("#{gem_dir}/bundled_gems") do |line| break Timeout.timeout(sec) {Process.wait(pid)} rescue Timeout::Error end + rescue Interrupt + exit_code = Signal.list["INT"] + Process.kill("-KILL", pid) + Process.wait(pid) + break end unless $?.success? - puts "Tests failed with exit code #{$?.exitstatus}" + + puts "Tests failed " + + ($?.signaled? ? "by SIG#{Signal.signame($?.termsig)}" : + "with exit code #{$?.exitstatus}") if allowed_failures.include?(gem) puts "Ignoring test failures for #{gem} due to \$TEST_BUNDLED_GEMS_ALLOW_FAILURES" else failed << gem - exit_code = $?.exitstatus + exit_code = $?.exitstatus if $?.exitstatus end end print "##[endgroup]\n" if github_actions |