From 92fee908ba0947768070272e3d16b194ddfec0af Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Sat, 26 Oct 2024 11:20:37 +0100 Subject: [PATCH 1/2] spec_helper: improve parallel test handling. - Clarify the comment of why we have SimpleCov special logic for parallel tests - use a nicer ParallelTests API for checking which process to output the coverage format on --- Library/Homebrew/test/spec_helper.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index 783b522b96..fb2922c699 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -10,10 +10,11 @@ if ENV["HOMEBREW_TESTS_COVERAGE"] ] SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(formatters) + # Needed for outputting coverage reporting only once for parallel_tests if RUBY_PLATFORM[/darwin/] && ENV["TEST_ENV_NUMBER"] SimpleCov.at_exit do result = SimpleCov.result - result.format! if ParallelTests.number_of_running_processes <= 1 + result.format! if ParallelTests.last_process? end end end From 46cb9ec9479b81b9dd3a3e56ec33b0eb16eee8e6 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Sun, 27 Oct 2024 15:38:23 +0000 Subject: [PATCH 2/2] spec_helper: clarify comment and scope to all OS --- Library/Homebrew/test/spec_helper.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index fb2922c699..831d8f7404 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -10,10 +10,13 @@ if ENV["HOMEBREW_TESTS_COVERAGE"] ] SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(formatters) - # Needed for outputting coverage reporting only once for parallel_tests - if RUBY_PLATFORM[/darwin/] && ENV["TEST_ENV_NUMBER"] + # Needed for outputting coverage reporting only once for parallel_tests. + # Otherwise, "Coverage report generated" will get spammed for each process. + if ENV["TEST_ENV_NUMBER"] SimpleCov.at_exit do result = SimpleCov.result + # `SimpleCov.result` calls `ParallelTests.wait_for_other_processes_to_finish` + # internally for you on the last process. result.format! if ParallelTests.last_process? end end