From 1a4eb14b1642bbdddf0e51aa7894c562b5afc87a Mon Sep 17 00:00:00 2001
From: Kaito Udagawa <umireon@gmail.com>
Date: Thu, 10 Nov 2016 08:50:21 +0900
Subject: [PATCH] cask-tests: fix cask-tests always fail on the test failure
 `brew cask-tests` collected the test results in an improper way so that it
 reports a false success in certain situations. Specially, the session under
 BrewTestBot always reports success regardless of the test status. With this
 update, the exit code of `brew cask-tests` is 1 when the test fails, and then
 CI preperly works.

---
 Library/Homebrew/cask/cmd/brew-cask-tests.rb | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/Library/Homebrew/cask/cmd/brew-cask-tests.rb b/Library/Homebrew/cask/cmd/brew-cask-tests.rb
index 3126490e3d..0bfc4b037f 100755
--- a/Library/Homebrew/cask/cmd/brew-cask-tests.rb
+++ b/Library/Homebrew/cask/cmd/brew-cask-tests.rb
@@ -26,6 +26,8 @@ repo_root.cd do
 
   ENV["HOMEBREW_TESTS_COVERAGE"] = "1" if ARGV.flag?("--coverage")
 
+  failed = false
+
   if rspec
     run_tests "parallel_rspec", Dir["spec/**/*_spec.rb"], %w[
       --color
@@ -34,15 +36,17 @@ repo_root.cd do
       --format ParallelTests::RSpec::RuntimeLogger
       --out tmp/parallel_runtime_rspec.log
     ]
+    failed ||= !$CHILD_STATUS.success?
   end
 
   if minitest
     run_tests "parallel_test", Dir["test/**/*_test.rb"]
+    failed ||= !$CHILD_STATUS.success?
   end
 
+  Homebrew.failed = failed
+
   if ENV["CODECOV_TOKEN"]
     system "bundle", "exec", "rake", "test:coverage:upload"
   end
-
-  Homebrew.failed = !$CHILD_STATUS.success?
 end
-- 
GitLab