aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorMike McQuaid2016-09-23 07:57:35 +0100
committerGitHub2016-09-23 07:57:35 +0100
commit5cf3838f4292f3c47bc6a66e6d532fa290bcc5e0 (patch)
treed70a95c2da4ce92c716b37bbe4765d42017e29e1 /Library/Homebrew/test
parentb7e7434bdbe59412505662df4ae919884990264b (diff)
parent5c5c416d1cb2df75f430c30a8044c82e041f530c (diff)
downloadbrew-5cf3838f4292f3c47bc6a66e6d532fa290bcc5e0.tar.bz2
Merge pull request #1041 from penman/parallel_tests
Parallelise test suite
Diffstat (limited to 'Library/Homebrew/test')
-rwxr-xr-xLibrary/Homebrew/test/.simplecov45
-rw-r--r--Library/Homebrew/test/Gemfile1
-rw-r--r--Library/Homebrew/test/Gemfile.lock6
-rw-r--r--Library/Homebrew/test/Rakefile29
-rw-r--r--Library/Homebrew/test/test_inreplace.rb13
-rw-r--r--Library/Homebrew/test/testing_env.rb3
6 files changed, 16 insertions, 81 deletions
diff --git a/Library/Homebrew/test/.simplecov b/Library/Homebrew/test/.simplecov
deleted file mode 100755
index 7b057e878..000000000
--- a/Library/Homebrew/test/.simplecov
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env ruby
-
-SimpleCov.start do
- coverage_dir File.expand_path("../coverage", File.realpath(__FILE__))
- root File.expand_path("../..", File.realpath(__FILE__))
-
- # We manage the result cache ourselves and the default of 10 minutes can be
- # too low (particularly on Travis CI), causing results from some integration
- # 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/test/"
- add_filter "/Homebrew/vendor/"
-
- if ENV["HOMEBREW_INTEGRATION_TEST"]
- command_name ENV["HOMEBREW_INTEGRATION_TEST"]
- at_exit do
- exit_code = $!.nil? ? 0 : $!.status
- $stdout.reopen("/dev/null")
- SimpleCov.result # Just save result, but don't write formatted output.
- exit! exit_code
- end
- else
- # Not using this during integration tests makes the tests 4x times faster
- # without changing the coverage.
- track_files "#{SimpleCov.root}/**/*.rb"
- end
-
- # Add groups and the proper project name to the output.
- project_name "Homebrew"
- add_group "Cask", "/Homebrew/cask/"
- add_group "Commands", %w[/Homebrew/cmd/ /Homebrew/dev-cmd/]
- add_group "Extensions", "/Homebrew/extend/"
- add_group "OS", %w[/Homebrew/extend/os/ /Homebrew/os/]
- add_group "Requirements", "/Homebrew/requirements/"
- add_group "Scripts", %w[
- /Homebrew/brew.rb
- /Homebrew/build.rb
- /Homebrew/postinstall.rb
- /Homebrew/test.rb
- ]
-end
diff --git a/Library/Homebrew/test/Gemfile b/Library/Homebrew/test/Gemfile
index b7666e551..193604dd7 100644
--- a/Library/Homebrew/test/Gemfile
+++ b/Library/Homebrew/test/Gemfile
@@ -3,6 +3,7 @@ source "https://rubygems.org"
gem "mocha", "~> 1.1"
gem "minitest", "~> 5.3"
gem "rake", "~> 10.3"
+gem "parallel_tests", "~> 2.9"
group :coverage do
# This is SimpleCov v0.12.0 with one PR merged on top, that finally resolves
diff --git a/Library/Homebrew/test/Gemfile.lock b/Library/Homebrew/test/Gemfile.lock
index ceb11128d..841ff0b5c 100644
--- a/Library/Homebrew/test/Gemfile.lock
+++ b/Library/Homebrew/test/Gemfile.lock
@@ -21,6 +21,9 @@ GEM
minitest (5.9.0)
mocha (1.1.0)
metaclass (~> 0.0.1)
+ parallel (1.9.0)
+ parallel_tests (2.9.0)
+ parallel
rake (10.5.0)
simplecov-html (0.10.0)
url (0.3.2)
@@ -32,8 +35,9 @@ DEPENDENCIES
codecov
minitest (~> 5.3)
mocha (~> 1.1)
+ parallel_tests (~> 2.9)
rake (~> 10.3)
simplecov (= 0.12.0)!
BUNDLED WITH
- 1.12.5
+ 1.13.1
diff --git a/Library/Homebrew/test/Rakefile b/Library/Homebrew/test/Rakefile
deleted file mode 100644
index a2db861f2..000000000
--- a/Library/Homebrew/test/Rakefile
+++ /dev/null
@@ -1,29 +0,0 @@
-require "rake"
-require "rake/testtask"
-
-def mac?
- return false if ENV["HOMEBREW_TEST_GENERIC_OS"]
- RUBY_PLATFORM.to_s.downcase.include? "darwin"
-end
-
-TEST_DIRECTORY = File.dirname(File.expand_path(__FILE__))
-TEST_FILES = Dir["#{TEST_DIRECTORY}/test_*.rb"].reject do |f|
- f.include?("/test_os_mac_") && !mac?
-end
-
-task default: :test
-
-Rake::TestTask.new(:test) do |t|
- t.libs << TEST_DIRECTORY
- t.test_files = TEST_FILES
-end
-
-namespace :test do
- TEST_FILES.each do |file|
- name = file[/test_(.+)\.rb/, 1]
- Rake::TestTask.new(name) do |t|
- t.libs << TEST_DIRECTORY
- t.test_files = [file]
- end
- end
-end
diff --git a/Library/Homebrew/test/test_inreplace.rb b/Library/Homebrew/test/test_inreplace.rb
index 91d57f942..0e62f9d3f 100644
--- a/Library/Homebrew/test/test_inreplace.rb
+++ b/Library/Homebrew/test/test_inreplace.rb
@@ -91,26 +91,29 @@ class InreplaceTest < Homebrew::TestCase
end
def test_inreplace_errors
+ require "tempfile"
extend(Utils::Inreplace)
- open("test", "w") { |f| f.write "a\nb\nc\n" }
+ file = Tempfile.new("test")
+
+ file.write "a\nb\nc\n"
assert_raises(Utils::InreplaceError) do
- inreplace "test", "d", "f"
+ inreplace file.path, "d", "f"
end
assert_raises(Utils::InreplaceError) do
# Under current context, we are testing `String#gsub!`, so let's disable rubocop temporarily.
- inreplace("test") { |s| s.gsub!("d", "f") } # rubocop:disable Performance/StringReplacement
+ inreplace(file.path) { |s| s.gsub!("d", "f") } # rubocop:disable Performance/StringReplacement
end
assert_raises(Utils::InreplaceError) do
- inreplace("test") do |s|
+ inreplace(file.path) do |s|
s.change_make_var! "VAR", "value"
s.remove_make_var! "VAR2"
end
end
ensure
- File.unlink("test")
+ file.unlink
end
end
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index 164c812ea..2b4f9422b 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -15,6 +15,7 @@ TEST_DIRECTORY = File.dirname(File.expand_path(__FILE__))
begin
require "rubygems"
require "minitest/autorun"
+ require "parallel_tests/test/runtime_logger"
require "mocha/setup"
rescue LoadError
abort "Run `bundle install` or install the mocha and minitest gems before running the tests"
@@ -42,7 +43,7 @@ module Homebrew
module FSLeakLogger
def self.included(klass)
require "find"
- @@log = File.open("fs_leak_log", "w")
+ @@log = File.open("#{__dir__}/fs_leak_log", "w")
klass.make_my_diffs_pretty!
end