From 4944d43d580140af94c0b19a7dbb50bb36b7593a Mon Sep 17 00:00:00 2001
From: Markus Reiter <me@reitermark.us>
Date: Sun, 5 Mar 2017 08:06:45 +0100
Subject: [PATCH] Move coverage reporting into `brew tests`.

---
 Library/Homebrew/.simplecov                   |  2 --
 Library/Homebrew/cask/.simplecov              |  1 -
 Library/Homebrew/cask/cmd/brew-cask-tests.rb  | 33 -------------------
 Library/Homebrew/cask/spec/upload_coverage.rb |  6 ----
 Library/Homebrew/test/spec_helper.rb          | 15 +++++++++
 5 files changed, 15 insertions(+), 42 deletions(-)
 delete mode 120000 Library/Homebrew/cask/.simplecov
 delete mode 100755 Library/Homebrew/cask/cmd/brew-cask-tests.rb
 delete mode 100755 Library/Homebrew/cask/spec/upload_coverage.rb

diff --git a/Library/Homebrew/.simplecov b/Library/Homebrew/.simplecov
index d2e00cf469..23e60faeb0 100755
--- a/Library/Homebrew/.simplecov
+++ b/Library/Homebrew/.simplecov
@@ -11,8 +11,6 @@ SimpleCov.start do
   # tests to be dropped. This causes random fluctuations in test coverage.
   merge_timeout 86400
 
-  add_filter "/Homebrew/cask/spec/"
-  add_filter "/Homebrew/cask/test/"
   add_filter "/Homebrew/compat/"
   add_filter "/Homebrew/dev-cmd/tests.rb"
   add_filter "/Homebrew/test/"
diff --git a/Library/Homebrew/cask/.simplecov b/Library/Homebrew/cask/.simplecov
deleted file mode 120000
index 75a078be4a..0000000000
--- a/Library/Homebrew/cask/.simplecov
+++ /dev/null
@@ -1 +0,0 @@
-../.simplecov
\ No newline at end of file
diff --git a/Library/Homebrew/cask/cmd/brew-cask-tests.rb b/Library/Homebrew/cask/cmd/brew-cask-tests.rb
deleted file mode 100755
index a1006b7efb..0000000000
--- a/Library/Homebrew/cask/cmd/brew-cask-tests.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-require "English"
-
-ENV["BUNDLE_GEMFILE"] = "#{HOMEBREW_LIBRARY_PATH}/cask/Gemfile"
-ENV["BUNDLE_PATH"] = "#{HOMEBREW_LIBRARY_PATH}/vendor/bundle"
-
-def run_tests(executable, files, args = [])
-  opts = []
-  opts << "--serialize-stdout" if ENV["CI"]
-
-  system "bundle", "exec", executable, *opts, "--", *args, "--", *files
-end
-
-cask_root = Pathname.new(__FILE__).realpath.parent.parent
-cask_root.cd do
-  ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1"
-  ENV["HOMEBREW_NO_EMOJI"] = "1"
-  ENV.delete("HOMEBREW_CASK_OPTS")
-
-  Homebrew.install_gem_setup_path! "bundler"
-  unless quiet_system("bundle", "check")
-    system "bundle", "install"
-  end
-
-  if ARGV.flag?("--coverage")
-    ENV["HOMEBREW_TESTS_COVERAGE"] = "1"
-    upload_coverage = ENV["CODECOV_TOKEN"] || ENV["TRAVIS"]
-  end
-
-  if upload_coverage
-    puts "Submitting Codecov coverage..."
-    system "bundle", "exec", "spec/upload_coverage.rb"
-  end
-end
diff --git a/Library/Homebrew/cask/spec/upload_coverage.rb b/Library/Homebrew/cask/spec/upload_coverage.rb
deleted file mode 100755
index 06d38157dd..0000000000
--- a/Library/Homebrew/cask/spec/upload_coverage.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env ruby
-require "simplecov"
-require "codecov"
-
-formatter = SimpleCov::Formatter::Codecov.new
-formatter.format SimpleCov::ResultMerger.merged_result
diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb
index 4616d77082..af414b1459 100644
--- a/Library/Homebrew/test/spec_helper.rb
+++ b/Library/Homebrew/test/spec_helper.rb
@@ -1,4 +1,5 @@
 require "find"
+require "parallel_tests"
 require "pathname"
 require "rspec/its"
 require "rspec/wait"
@@ -6,6 +7,20 @@ require "set"
 
 if ENV["HOMEBREW_TESTS_COVERAGE"]
   require "simplecov"
+
+  if ENV["CODECOV_TOKEN"] || ENV["TRAVIS"]
+    require "codecov"
+
+    if ParallelTests.last_process?
+      at_exit do
+        ParallelTests.wait_for_other_processes_to_finish
+
+        puts "Sending coverage report to CodeCov 鈥�"
+        formatter = SimpleCov::Formatter::Codecov.new
+        formatter.format SimpleCov::ResultMerger.merged_result
+      end
+    end
+  end
 end
 
 $LOAD_PATH.unshift(File.expand_path("#{ENV["HOMEBREW_LIBRARY"]}/Homebrew"))
-- 
GitLab