From 8e5e668e1a0844ebafbfc8081d9f71a030feb1d6 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Thu, 21 Jul 2016 10:25:57 +0200 Subject: [PATCH] Patch SimpleCov to reuse code for coverage merger --- scripts/merge-simplecov | 70 +++++++++++------------------------------ 1 file changed, 19 insertions(+), 51 deletions(-) diff --git a/scripts/merge-simplecov b/scripts/merge-simplecov index 9504321e6d7..ab15b43bd0f 100755 --- a/scripts/merge-simplecov +++ b/scripts/merge-simplecov @@ -1,61 +1,29 @@ #!/usr/bin/env ruby -begin - load File.expand_path('../spring', __FILE__) -rescue LoadError => e - raise unless e.message.include?('spring') -end require 'simplecov' -def read(file) - return unless File.exist?(file) - data = File.read(file) - return if data.nil? || data.length < 2 - data -end +module SimpleCov + module ResultMerger + class << self + def resultset_files + Dir.glob(File.join(SimpleCov.coverage_path, '*', '.resultset.json')) + end -def load(file) - begin - JSON.parse(read(file)) - rescue - {} - end -end + def resultset_hashes + resultset_files.map do |path| + begin + JSON.parse(File.read(path)) + rescue + {} + end + end + end -def files - Dir.glob(File.join(SimpleCov.coverage_path, '*', '.resultset.json')) -end - -def resultsfiles - files.map { |file| load(file) } -end - -def resultsets - resultsfiles.reduce({}, :merge) -end - -def all_results - results = [] - resultsets.each do |command_name, data| - result = SimpleCov::Result.from_hash(command_name => data) - # Only add result if the timeout is above the configured threshold - if (Time.now - result.created_at) < SimpleCov.merge_timeout - results << result + def resultset + resultset_hashes.reduce({}, :merge) + end end end - results -end - -def merged_result - merged = {} - results = all_results - results.each do |result| - merged = result.original_result.merge_resultset(merged) - end - result = SimpleCov::Result.new(merged) - # Specify the command name - result.command_name = results.map(&:command_name).sort.join(", ") - result end # Ignore CI environment @@ -64,4 +32,4 @@ ENV['CI_BUILD_NAME'] = nil require_relative '../spec/simplecov_env' -merged_result.format! +SimpleCov::ResultMerger.merged_result.format!