From 65f84390554e7e85b9a4427418dc4aeba17757df Mon Sep 17 00:00:00 2001 From: xuan-cao-swi Date: Tue, 21 Jul 2026 10:37:06 -0700 Subject: [PATCH 1/3] fix: update simplecov to 1.0.0 --- Gemfile | 2 +- test/test_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index b0566fe..691d9cf 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ group :test do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.10.0' - gem 'simplecov', '~> 0.22.0' + gem 'simplecov', '~> 1.0.0' gem 'yard', '~> 0.9.44' if RUBY_VERSION >= '3.4' gem 'base64' diff --git a/test/test_helper.rb b/test/test_helper.rb index 1d22d12..724ce9e 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -151,7 +151,7 @@ def run_in_subprocess(env_vars = {}, opts = {}) write_pipe.close # Store the simplecov result for this process - SimpleCov::ResultMerger.store_result(SimpleCov::Result.new(Coverage.result)) if SimpleCov.running + SimpleCov::ResultMerger.store_result(SimpleCov::Result.new(Coverage.result)) exit!(0) end end From 9eb3da49c16d049241bb927d3c234f6fc6df6133 Mon Sep 17 00:00:00 2001 From: xuan-cao-swi Date: Thu, 23 Jul 2026 23:52:20 -0700 Subject: [PATCH 2/3] use Coverage.running? guard --- test/test_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 724ce9e..e5c0314 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -151,7 +151,7 @@ def run_in_subprocess(env_vars = {}, opts = {}) write_pipe.close # Store the simplecov result for this process - SimpleCov::ResultMerger.store_result(SimpleCov::Result.new(Coverage.result)) + SimpleCov::ResultMerger.store_result(SimpleCov::Result.new(Coverage.result)) if Coverage.running? exit!(0) end end From 03ebec590525c246918715f011020f8e7b66ae8b Mon Sep 17 00:00:00 2001 From: xuan-cao-swi Date: Wed, 29 Jul 2026 11:45:55 -0400 Subject: [PATCH 3/3] use .simplecov --- .simplecov | 21 +++++++++++++++++++++ test/test_helper.rb | 8 +------- 2 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 .simplecov diff --git a/.simplecov b/.simplecov new file mode 100644 index 0000000..61a52c0 --- /dev/null +++ b/.simplecov @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'digest' + +digest = Digest::MD5.new +digest.update('test') +digest.update(ENV.fetch('BUNDLE_GEMFILE', 'gemfile')) if ENV['APPRAISAL_INITIALIZED'] + +ENV['ENABLE_COVERAGE'] ||= '1' + +if ENV['ENABLE_COVERAGE'].to_i.positive? + SimpleCov.command_name(ENV['SIMPLECOV_COMMAND_NAME'] || digest.hexdigest) + + # Hook Process._fork so forked children store their own coverage slice. + SimpleCov.merge_subprocesses true + + SimpleCov.start do + merging true + add_filter %r{^/test/} + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index e5c0314..6c5fa89 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -5,8 +5,6 @@ # SPDX-License-Identifier: Apache-2.0 require 'simplecov' -SimpleCov.start - require 'rake' require 'minitest' require 'minitest/autorun' @@ -44,7 +42,6 @@ def run_in_subprocess(env_vars = {}, opts = {}) read_pipe, write_pipe = IO.pipe pid = fork do - SimpleCov.command_name "subprocess-#{Process.pid}" read_pipe.close env_vars.each { |key, value| ENV[key] = value } ENV['OTEL_RUBY_REQUIRE_BUNDLER'] = 'false' @@ -149,10 +146,7 @@ def run_in_subprocess(env_vars = {}, opts = {}) ensure $stderr = old_stderr if defined?(old_stderr) write_pipe.close - - # Store the simplecov result for this process - SimpleCov::ResultMerger.store_result(SimpleCov::Result.new(Coverage.result)) if Coverage.running? - exit!(0) + exit(0) end end