From 4a7bf2efe702b64183259828de470d14df0f0031 Mon Sep 17 00:00:00 2001 From: mame Date: Thu, 5 Apr 2018 01:05:16 +0000 Subject: `make test-all COVERAGE=true` supports directory-separated build git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- tool/test-coverage.rb | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'tool') diff --git a/tool/test-coverage.rb b/tool/test-coverage.rb index 7a27c5cfb4..e0d7dd06e1 100644 --- a/tool/test-coverage.rb +++ b/tool/test-coverage.rb @@ -70,13 +70,28 @@ def invoke_simplecov_formatter res = Marshal.load(File.binread(TEST_COVERAGE_DATA_FILE)) simplecov_result = {} base_dir = File.dirname(__dir__) + cur_dir = Dir.pwd res.each do |path, cov| - next unless path.start_with?(base_dir) + next unless path.start_with?(base_dir) || path.start_with?(cur_dir) next if path.start_with?(File.join(base_dir, "test")) simplecov_result[path] = cov[:lines] end + a, b = base_dir, cur_dir + until a == b + if a.size > b.size + a = File.dirname(a) + else + b = File.dirname(b) + end + end + root_dir = a + + SimpleCov.configure do + root(root_dir) + coverage_dir(File.join(cur_dir, "coverage")) + end res = SimpleCov::Result.new(simplecov_result) res.command_name = "Ruby's `make test-all`" SimpleCov::Formatter::HTMLFormatter.new.format(res) -- cgit v1.2.3