From b5f1db5f291dfbba54f373dbfac13c3be711d756 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Thu, 26 Jan 2017 12:01:24 +0000 Subject: [PATCH 1/7] */Gemfile*: remove rake, version pins, master simplecov. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We’re upgrading SimpleCov to 0.13.0 so let’s update the rest of our gems while we’re at it. --- Library/Homebrew/cask/Gemfile | 19 ++++----------- Library/Homebrew/cask/Gemfile.lock | 37 +++++++++++------------------- Library/Homebrew/test/Gemfile | 18 ++++----------- Library/Homebrew/test/Gemfile.lock | 37 +++++++++++------------------- 4 files changed, 36 insertions(+), 75 deletions(-) diff --git a/Library/Homebrew/cask/Gemfile b/Library/Homebrew/cask/Gemfile index dc5c43208d..5572387ccd 100644 --- a/Library/Homebrew/cask/Gemfile +++ b/Library/Homebrew/cask/Gemfile @@ -1,24 +1,13 @@ source "https://rubygems.org" -gem "rake" - group :test do - # This is SimpleCov v0.12.0 with two fixes merged on top, that finally resolve - # all issues with parallel tests, uncovered files, and tracked files. Switch - # back to stable as soon as v0.12.1 or v0.13.0 is released. For details, see: - # - https://github.com/colszowka/simplecov/pull/513 - # - https://github.com/colszowka/simplecov/pull/520 - gem "simplecov", "0.12.0", - git: "https://github.com/colszowka/simplecov.git", - branch: "master", - ref: "83d8031ddde0927f87ef9327200a98583ca18d77", - require: false + gem "simplecov", require: false gem "codecov", require: false - gem "minitest", "~> 5.9" + gem "minitest" gem "minitest-reporters" - gem "mocha", "~> 1.1", require: false + gem "mocha", require: false gem "parallel_tests" - gem "rspec", "~> 3.5" + gem "rspec" gem "rspec-its", require: false gem "rspec-wait", require: false end diff --git a/Library/Homebrew/cask/Gemfile.lock b/Library/Homebrew/cask/Gemfile.lock index 28c05c655e..700f093d1e 100644 --- a/Library/Homebrew/cask/Gemfile.lock +++ b/Library/Homebrew/cask/Gemfile.lock @@ -1,29 +1,18 @@ -GIT - remote: https://github.com/colszowka/simplecov.git - revision: 83d8031ddde0927f87ef9327200a98583ca18d77 - ref: 83d8031ddde0927f87ef9327200a98583ca18d77 - branch: master - specs: - simplecov (0.12.0) - docile (~> 1.1.0) - json (>= 1.8, < 3) - simplecov-html (~> 0.10.0) - GEM remote: https://rubygems.org/ specs: ansi (1.5.0) - builder (3.2.2) + builder (3.2.3) codecov (0.1.9) json simplecov url - diff-lcs (1.2.5) + diff-lcs (1.3) docile (1.1.5) - json (2.0.2) + json (2.0.3) metaclass (0.0.4) minitest (5.10.1) - minitest-reporters (1.1.13) + minitest-reporters (1.1.14) ansi builder minitest (>= 5.0) @@ -31,9 +20,8 @@ GEM mocha (1.2.1) metaclass (~> 0.0.1) parallel (1.10.0) - parallel_tests (2.10.0) + parallel_tests (2.13.0) parallel - rake (12.0.0) rspec (3.5.0) rspec-core (~> 3.5.0) rspec-expectations (~> 3.5.0) @@ -53,6 +41,10 @@ GEM rspec-wait (0.0.9) rspec (>= 3, < 4) ruby-progressbar (1.8.1) + simplecov (0.13.0) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) simplecov-html (0.10.0) url (0.3.2) @@ -61,15 +53,14 @@ PLATFORMS DEPENDENCIES codecov - minitest (~> 5.9) + minitest minitest-reporters - mocha (~> 1.1) + mocha parallel_tests - rake - rspec (~> 3.5) + rspec rspec-its rspec-wait - simplecov (= 0.12.0)! + simplecov BUNDLED WITH - 1.13.6 + 1.13.7 diff --git a/Library/Homebrew/test/Gemfile b/Library/Homebrew/test/Gemfile index a7e9eb8344..2a66086bd6 100644 --- a/Library/Homebrew/test/Gemfile +++ b/Library/Homebrew/test/Gemfile @@ -1,20 +1,10 @@ source "https://rubygems.org" -gem "mocha", "~> 1.1" -gem "minitest", "~> 5.3" -gem "rake", "~> 10.3" -gem "parallel_tests", "~> 2.9" +gem "mocha" +gem "minitest" +gem "parallel_tests" group :coverage do - # This is SimpleCov v0.12.0 with two fixes merged on top, that finally resolve - # all issues with parallel tests, uncovered files, and tracked files. Switch - # back to stable as soon as v0.12.1 or v0.13.0 is released. For details, see: - # - https://github.com/colszowka/simplecov/pull/513 - # - https://github.com/colszowka/simplecov/pull/520 - gem "simplecov", "0.12.0", - git: "https://github.com/colszowka/simplecov.git", - branch: "master", - ref: "83d8031ddde0927f87ef9327200a98583ca18d77", - require: false + gem "simplecov", require: false gem "codecov", require: false end diff --git a/Library/Homebrew/test/Gemfile.lock b/Library/Homebrew/test/Gemfile.lock index aa4800f34f..8289fcc202 100644 --- a/Library/Homebrew/test/Gemfile.lock +++ b/Library/Homebrew/test/Gemfile.lock @@ -1,31 +1,23 @@ -GIT - remote: https://github.com/colszowka/simplecov.git - revision: 83d8031ddde0927f87ef9327200a98583ca18d77 - ref: 83d8031ddde0927f87ef9327200a98583ca18d77 - branch: master - specs: - simplecov (0.12.0) - docile (~> 1.1.0) - json (>= 1.8, < 3) - simplecov-html (~> 0.10.0) - GEM remote: https://rubygems.org/ specs: - codecov (0.1.6) + codecov (0.1.9) json simplecov url docile (1.1.5) - json (2.0.2) + json (2.0.3) metaclass (0.0.4) - minitest (5.9.1) + minitest (5.10.1) mocha (1.2.1) metaclass (~> 0.0.1) - parallel (1.9.0) - parallel_tests (2.10.0) + parallel (1.10.0) + parallel_tests (2.13.0) parallel - rake (10.5.0) + simplecov (0.13.0) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) simplecov-html (0.10.0) url (0.3.2) @@ -34,11 +26,10 @@ PLATFORMS DEPENDENCIES codecov - minitest (~> 5.3) - mocha (~> 1.1) - parallel_tests (~> 2.9) - rake (~> 10.3) - simplecov (= 0.12.0)! + minitest + mocha + parallel_tests + simplecov BUNDLED WITH - 1.13.6 + 1.13.7 From 92b48ac42e84eb4c113bb3fb362f83b51282c99f Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Thu, 26 Jan 2017 12:01:54 +0000 Subject: [PATCH 2/7] brew-cask-tests: import Rakefile logic. This avoids a `rake` dependency in the Gemfile and an unnecessary shell out. --- Library/Homebrew/cask/Rakefile | 17 ----------------- Library/Homebrew/cask/cmd/brew-cask-tests.rb | 5 ++++- 2 files changed, 4 insertions(+), 18 deletions(-) delete mode 100644 Library/Homebrew/cask/Rakefile diff --git a/Library/Homebrew/cask/Rakefile b/Library/Homebrew/cask/Rakefile deleted file mode 100644 index b2b9fce526..0000000000 --- a/Library/Homebrew/cask/Rakefile +++ /dev/null @@ -1,17 +0,0 @@ -require "rake/testtask" -require "rspec/core/rake_task" - -$LOAD_PATH.unshift(File.expand_path("#{ENV["HOMEBREW_REPOSITORY"]}/Library/Homebrew")) -$LOAD_PATH.unshift(File.expand_path("../lib", __FILE__)) - -namespace :test do - namespace :coverage do - desc "Upload coverage to Codecov" - task :upload do - require "simplecov" - require "codecov" - formatter = SimpleCov::Formatter::Codecov.new - formatter.format(SimpleCov::ResultMerger.merged_result) - end - end -end diff --git a/Library/Homebrew/cask/cmd/brew-cask-tests.rb b/Library/Homebrew/cask/cmd/brew-cask-tests.rb index 43683a2634..94902e41c5 100755 --- a/Library/Homebrew/cask/cmd/brew-cask-tests.rb +++ b/Library/Homebrew/cask/cmd/brew-cask-tests.rb @@ -52,6 +52,9 @@ repo_root.cd do if upload_coverage puts "Submitting Codecov coverage..." - system "bundle", "exec", "rake", "test:coverage:upload" + require "simplecov" + require "codecov" + formatter = SimpleCov::Formatter::Codecov.new + formatter.format(SimpleCov::ResultMerger.merged_result) end end From 0fc4a52c6c34deaee59c55b1d7ff3ea62eda2b36 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Thu, 26 Jan 2017 12:02:17 +0000 Subject: [PATCH 3/7] *_test: use assert_nil when appropriate. This is warned by the newer MiniTest. --- Library/Homebrew/test/shell_test.rb | 6 +++--- Library/Homebrew/test/tab_test.rb | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/test/shell_test.rb b/Library/Homebrew/test/shell_test.rb index a32d098638..a04ab83311 100644 --- a/Library/Homebrew/test/shell_test.rb +++ b/Library/Homebrew/test/shell_test.rb @@ -14,9 +14,9 @@ class ShellSmokeTest < Homebrew::TestCase end def test_path_to_shell_failure - assert_equal nil, Utils::Shell.path_to_shell("") - assert_equal nil, Utils::Shell.path_to_shell("@@@@@@") - assert_equal nil, Utils::Shell.path_to_shell("invalid_shell-4.2") + assert_nil Utils::Shell.path_to_shell("") + assert_nil Utils::Shell.path_to_shell("@@@@@@") + assert_nil Utils::Shell.path_to_shell("invalid_shell-4.2") end def test_sh_quote diff --git a/Library/Homebrew/test/tab_test.rb b/Library/Homebrew/test/tab_test.rb index f6f55348d1..b48efcf5ce 100644 --- a/Library/Homebrew/test/tab_test.rb +++ b/Library/Homebrew/test/tab_test.rb @@ -241,15 +241,18 @@ class TabTests < Homebrew::TestCase assert_equal @tab.changed_files, tab.changed_files assert_equal @tab.tap, tab.tap assert_equal @tab.spec, tab.spec - assert_equal @tab.time, tab.time + assert_nil @tab.time + assert_nil tab.time assert_equal @tab.HEAD, tab.HEAD assert_equal @tab.compiler, tab.compiler assert_equal @tab.stdlib, tab.stdlib - assert_equal @tab.runtime_dependencies, tab.runtime_dependencies + assert_nil @tab.runtime_dependencies + assert_nil tab.runtime_dependencies assert_equal @tab.stable_version, tab.stable_version assert_equal @tab.devel_version, tab.devel_version assert_equal @tab.head_version, tab.head_version - assert_equal @tab.source["path"], tab.source["path"] + assert_nil @tab.source["path"] + assert_nil tab.source["path"] end def test_remap_deprecated_options From e65150412ce33b95ca993f5711949eeda604f837 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Thu, 26 Jan 2017 16:57:30 +0100 Subject: [PATCH 4/7] =?UTF-8?q?Add=20`require=20"bundler/setup=E2=80=9C`?= =?UTF-8?q?=20to=20`cask-tests`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Library/Homebrew/cask/cmd/brew-cask-tests.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Library/Homebrew/cask/cmd/brew-cask-tests.rb b/Library/Homebrew/cask/cmd/brew-cask-tests.rb index 94902e41c5..002d357ddd 100755 --- a/Library/Homebrew/cask/cmd/brew-cask-tests.rb +++ b/Library/Homebrew/cask/cmd/brew-cask-tests.rb @@ -21,6 +21,8 @@ repo_root.cd do system "bundle", "install" end + require "bundler/setup" + rspec = ARGV.flag?("--rspec") || !ARGV.flag?("--minitest") minitest = ARGV.flag?("--minitest") || !ARGV.flag?("--rspec") From dd0bc83eca073da570051e00b8ed111febcdb2d9 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Thu, 26 Jan 2017 18:28:08 +0100 Subject: [PATCH 5/7] =?UTF-8?q?Move=20`require=20"bundler/setup=E2=80=9C`?= =?UTF-8?q?=20to=20top=20of=20`cask-tests`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Library/Homebrew/cask/cmd/brew-cask-tests.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Library/Homebrew/cask/cmd/brew-cask-tests.rb b/Library/Homebrew/cask/cmd/brew-cask-tests.rb index 002d357ddd..49650c5193 100755 --- a/Library/Homebrew/cask/cmd/brew-cask-tests.rb +++ b/Library/Homebrew/cask/cmd/brew-cask-tests.rb @@ -1,4 +1,5 @@ require "English" +require "bundler/setup" ENV["BUNDLE_GEMFILE"] = "#{HOMEBREW_LIBRARY_PATH}/cask/Gemfile" ENV["BUNDLE_PATH"] = "#{HOMEBREW_LIBRARY_PATH}/vendor/bundle" @@ -21,8 +22,6 @@ repo_root.cd do system "bundle", "install" end - require "bundler/setup" - rspec = ARGV.flag?("--rspec") || !ARGV.flag?("--minitest") minitest = ARGV.flag?("--minitest") || !ARGV.flag?("--rspec") From 39ce9c890e3c1cda60b370ff8ac49cd640be90e1 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Thu, 26 Jan 2017 23:11:37 +0100 Subject: [PATCH 6/7] Try uploading coverage report in `.simplecov`. --- Library/Homebrew/.simplecov | 6 ++++++ Library/Homebrew/cask/cmd/brew-cask-tests.rb | 11 ----------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Library/Homebrew/.simplecov b/Library/Homebrew/.simplecov index 952bb466b5..9db7b3210f 100755 --- a/Library/Homebrew/.simplecov +++ b/Library/Homebrew/.simplecov @@ -52,3 +52,9 @@ SimpleCov.start do /Homebrew/test.rb ] end + +if ENV["CODECOV_TOKEN"] || ENV["TRAVIS"] + require "codecov" + formatter = SimpleCov::Formatter::Codecov.new + formatter.format(SimpleCov::ResultMerger.merged_result) +end diff --git a/Library/Homebrew/cask/cmd/brew-cask-tests.rb b/Library/Homebrew/cask/cmd/brew-cask-tests.rb index 49650c5193..2bff513fe9 100755 --- a/Library/Homebrew/cask/cmd/brew-cask-tests.rb +++ b/Library/Homebrew/cask/cmd/brew-cask-tests.rb @@ -1,5 +1,4 @@ require "English" -require "bundler/setup" ENV["BUNDLE_GEMFILE"] = "#{HOMEBREW_LIBRARY_PATH}/cask/Gemfile" ENV["BUNDLE_PATH"] = "#{HOMEBREW_LIBRARY_PATH}/vendor/bundle" @@ -25,10 +24,8 @@ repo_root.cd do rspec = ARGV.flag?("--rspec") || !ARGV.flag?("--minitest") minitest = ARGV.flag?("--minitest") || !ARGV.flag?("--rspec") - p [:coverage, ARGV.flag?("--coverage"), ENV["CI"], ENV["TRAVIS"]] if ARGV.flag?("--coverage") ENV["HOMEBREW_TESTS_COVERAGE"] = "1" - upload_coverage = ENV["CODECOV_TOKEN"] || ENV["TRAVIS"] end failed = false @@ -50,12 +47,4 @@ repo_root.cd do end Homebrew.failed = failed - - if upload_coverage - puts "Submitting Codecov coverage..." - require "simplecov" - require "codecov" - formatter = SimpleCov::Formatter::Codecov.new - formatter.format(SimpleCov::ResultMerger.merged_result) - end end From f7b19916265ba893c669316c0984085aa069d774 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Sun, 29 Jan 2017 17:23:05 +0000 Subject: [PATCH 7/7] Use dedicated upload_coverage script. --- Library/Homebrew/.simplecov | 6 ------ Library/Homebrew/cask/cmd/brew-cask-tests.rb | 10 ++++++++-- Library/Homebrew/cask/test/upload_coverage.rb | 6 ++++++ 3 files changed, 14 insertions(+), 8 deletions(-) create mode 100755 Library/Homebrew/cask/test/upload_coverage.rb diff --git a/Library/Homebrew/.simplecov b/Library/Homebrew/.simplecov index 9db7b3210f..952bb466b5 100755 --- a/Library/Homebrew/.simplecov +++ b/Library/Homebrew/.simplecov @@ -52,9 +52,3 @@ SimpleCov.start do /Homebrew/test.rb ] end - -if ENV["CODECOV_TOKEN"] || ENV["TRAVIS"] - require "codecov" - formatter = SimpleCov::Formatter::Codecov.new - formatter.format(SimpleCov::ResultMerger.merged_result) -end diff --git a/Library/Homebrew/cask/cmd/brew-cask-tests.rb b/Library/Homebrew/cask/cmd/brew-cask-tests.rb index 2bff513fe9..bdcabd4dc8 100755 --- a/Library/Homebrew/cask/cmd/brew-cask-tests.rb +++ b/Library/Homebrew/cask/cmd/brew-cask-tests.rb @@ -10,8 +10,8 @@ def run_tests(executable, files, args = []) system "bundle", "exec", executable, *opts, "--", *args, "--", *files end -repo_root = Pathname.new(__FILE__).realpath.parent.parent -repo_root.cd do +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") @@ -26,6 +26,7 @@ repo_root.cd do if ARGV.flag?("--coverage") ENV["HOMEBREW_TESTS_COVERAGE"] = "1" + upload_coverage = ENV["CODECOV_TOKEN"] || ENV["TRAVIS"] end failed = false @@ -47,4 +48,9 @@ repo_root.cd do end Homebrew.failed = failed + + if upload_coverage + puts "Submitting Codecov coverage..." + system "bundle", "exec", "test/upload_coverage.rb" + end end diff --git a/Library/Homebrew/cask/test/upload_coverage.rb b/Library/Homebrew/cask/test/upload_coverage.rb new file mode 100755 index 0000000000..06d38157dd --- /dev/null +++ b/Library/Homebrew/cask/test/upload_coverage.rb @@ -0,0 +1,6 @@ +#!/usr/bin/env ruby +require "simplecov" +require "codecov" + +formatter = SimpleCov::Formatter::Codecov.new +formatter.format SimpleCov::ResultMerger.merged_result