aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/test')
-rwxr-xr-xLibrary/Homebrew/test/.simplecov45
-rw-r--r--Library/Homebrew/test/Gemfile10
-rw-r--r--Library/Homebrew/test/Gemfile.lock8
-rw-r--r--Library/Homebrew/test/Rakefile29
-rw-r--r--Library/Homebrew/test/test_cmd_testbot.rb99
-rw-r--r--Library/Homebrew/test/test_dependency_collector.rb5
-rw-r--r--Library/Homebrew/test/test_diagnostic.rb2
-rw-r--r--Library/Homebrew/test/test_download_strategies.rb2
-rw-r--r--Library/Homebrew/test/test_formula.rb6
-rw-r--r--Library/Homebrew/test/test_inreplace.rb13
-rw-r--r--Library/Homebrew/test/test_integration_cmds.rb9
-rw-r--r--Library/Homebrew/test/test_os_mac_dependency_collector.rb16
-rw-r--r--Library/Homebrew/test/test_pathname.rb2
-rw-r--r--Library/Homebrew/test/test_versions.rb6
-rw-r--r--Library/Homebrew/test/testing_env.rb8
15 files changed, 61 insertions, 199 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..0a84f8dc2 100644
--- a/Library/Homebrew/test/Gemfile
+++ b/Library/Homebrew/test/Gemfile
@@ -3,15 +3,17 @@ 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
+ # 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. See pull request
- # <https://github.com/Homebrew/legacy-homebrew/pull/48250> for full details.
+ # 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", # commit 257e26394c464c4ab388631b4eff1aa98c37d3f1
+ branch: "master", # commit 83d8031ddde0927f87ef9327200a98583ca18d77
require: false
gem "codecov", require: false
end
diff --git a/Library/Homebrew/test/Gemfile.lock b/Library/Homebrew/test/Gemfile.lock
index ceb11128d..ba639d70f 100644
--- a/Library/Homebrew/test/Gemfile.lock
+++ b/Library/Homebrew/test/Gemfile.lock
@@ -1,6 +1,6 @@
GIT
remote: https://github.com/colszowka/simplecov.git
- revision: 257e26394c464c4ab388631b4eff1aa98c37d3f1
+ revision: 83d8031ddde0927f87ef9327200a98583ca18d77
branch: master
specs:
simplecov (0.12.0)
@@ -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_cmd_testbot.rb b/Library/Homebrew/test/test_cmd_testbot.rb
deleted file mode 100644
index d762448d1..000000000
--- a/Library/Homebrew/test/test_cmd_testbot.rb
+++ /dev/null
@@ -1,99 +0,0 @@
-require "pathname"
-
-require "testing_env"
-require "dev-cmd/test-bot"
-
-class TestbotCommandTests < Homebrew::TestCase
- def test_resolve_test_tap
- tap = Homebrew.resolve_test_tap
- assert_nil tap, "Should return nil if no tap slug provided"
-
- slug = "spam/homebrew-eggs"
- url = "https://github.com/#{slug}.git"
- environments = [
- { "TRAVIS_REPO_SLUG" => slug },
- { "UPSTREAM_BOT_PARAMS" => "--tap=#{slug}" },
- { "UPSTREAM_BOT_PARAMS" => "--tap=spam/eggs" },
- { "UPSTREAM_GIT_URL" => url },
- { "GIT_URL" => url },
- ]
-
- predicate = proc do |message|
- tap = Homebrew.resolve_test_tap
- assert_kind_of Tap, tap, message
- assert_equal tap.user, "spam", message
- assert_equal tap.repo, "eggs", message
- end
-
- environments.each do |pair|
- with_environment(pair) do
- predicate.call pair.to_s
- end
- end
-
- ARGV.expects(:value).with("tap").returns(slug)
- predicate.call "ARGV"
- end
-end
-
-class TestbotStepTests < Homebrew::TestCase
- def run
- [nil, "1"].each do |travis|
- with_environment("TRAVIS" => travis) { super }
- end
- self
- end
-
- def teardown
- unless passed?
- raise "INFO: Previous test failed with ENV['TRAVIS'] = #{ENV["TRAVIS"].inspect}"
- end
- end
-
- def stub_test_instance
- stub(
- category: "stub",
- log_root: Pathname.pwd
- )
- end
-
- def test_step_run_measures_execution_time
- step = Homebrew::Step.new stub_test_instance, %w[sleep 0.1]
- shutup do
- step.run
- end
- assert_operator step.time, :>, 0.1
- assert_operator step.time, :<, 1
- assert_equal step.passed?, true
- end
-
- def test_step_run_observes_failure
- step = Homebrew::Step.new stub_test_instance, ["false", ""]
- shutup do
- step.run
- end
- assert_equal step.passed?, false
- assert_equal step.failed?, true
- end
-
- def test_step_dry_run_is_dry_and_always_succeeds
- step = Homebrew::Step.new stub_test_instance, ["false", ""]
- ARGV.expects(:include?).with("--dry-run").returns(true)
- step.stubs(:fork).raises("Dry run isn't dry!")
- shutup do
- step.run
- end
- assert_equal step.passed?, true
- end
-
- def test_step_fail_fast_exits_on_failure
- step = Homebrew::Step.new stub_test_instance, ["false", ""]
- ARGV.stubs(:include?).returns(false)
- ARGV.expects(:include?).with("--fail-fast").returns(true)
- step.expects(:exit).with(1).returns(nil)
- shutup do
- step.run
- end
- assert_equal step.passed?, false
- end
-end
diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb
index a94b4959e..4e87c8515 100644
--- a/Library/Homebrew/test/test_dependency_collector.rb
+++ b/Library/Homebrew/test/test_dependency_collector.rb
@@ -76,6 +76,11 @@ class DependencyCollectorTests < Homebrew::TestCase
assert_predicate dep, :optional?
end
+ def test_ant_dep
+ @d.add ant: :build
+ assert_equal find_dependency("ant"), Dependency.new("ant", [:build])
+ end
+
def test_raises_typeerror_for_unknown_classes
assert_raises(TypeError) { @d.add(Class.new) }
end
diff --git a/Library/Homebrew/test/test_diagnostic.rb b/Library/Homebrew/test/test_diagnostic.rb
index 5d0f5f386..37f56e961 100644
--- a/Library/Homebrew/test/test_diagnostic.rb
+++ b/Library/Homebrew/test/test_diagnostic.rb
@@ -154,7 +154,7 @@ class DiagnosticChecksTest < Homebrew::TestCase
def test_check_dyld_vars
ENV["DYLD_INSERT_LIBRARIES"] = "foo"
assert_match "Setting DYLD_INSERT_LIBRARIES",
- @checks.check_DYLD_vars
+ @checks.check_dyld_vars
end
def test_check_for_symlinked_cellar
diff --git a/Library/Homebrew/test/test_download_strategies.rb b/Library/Homebrew/test/test_download_strategies.rb
index d107d14e8..87218fb12 100644
--- a/Library/Homebrew/test/test_download_strategies.rb
+++ b/Library/Homebrew/test/test_download_strategies.rb
@@ -118,7 +118,7 @@ class GitDownloadStrategyTests < Homebrew::TestCase
def test_source_modified_time
setup_git_repo
- assert_equal 1242860651, @strategy.source_modified_time.to_i
+ assert_equal 1_242_860_651, @strategy.source_modified_time.to_i
end
def test_last_commit
diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb
index 9207f8ead..37d3f0f59 100644
--- a/Library/Homebrew/test/test_formula.rb
+++ b/Library/Homebrew/test/test_formula.rb
@@ -467,7 +467,7 @@ class FormulaTests < Homebrew::TestCase
assert_version_equal "HEAD", f.head.version
end
- def test_formula_set_active_spec
+ def test_formula_active_spec=
f = formula do
url "foo"
version "1.0"
@@ -481,11 +481,11 @@ class FormulaTests < Homebrew::TestCase
assert_equal :stable, f.active_spec_sym
assert_equal f.stable, f.send(:active_spec)
assert_equal "1.0_1", f.pkg_version.to_s
- f.set_active_spec(:devel)
+ f.active_spec = :devel
assert_equal :devel, f.active_spec_sym
assert_equal f.devel, f.send(:active_spec)
assert_equal "1.0beta_1", f.pkg_version.to_s
- assert_raises(FormulaSpecificationError) { f.set_active_spec(:head) }
+ assert_raises(FormulaSpecificationError) { f.active_spec = :head }
end
def test_path
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/test_integration_cmds.rb b/Library/Homebrew/test/test_integration_cmds.rb
index 11eb6c69d..35ad04e7a 100644
--- a/Library/Homebrew/test/test_integration_cmds.rb
+++ b/Library/Homebrew/test/test_integration_cmds.rb
@@ -39,9 +39,8 @@ class IntegrationCommandTests < Homebrew::TestCase
end
def needs_test_cmd_taps
- unless ENV["HOMEBREW_TEST_OFFICIAL_CMD_TAPS"]
- skip "HOMEBREW_TEST_OFFICIAL_CMD_TAPS is not set"
- end
+ return if ENV["HOMEBREW_TEST_OFFICIAL_CMD_TAPS"]
+ skip "HOMEBREW_TEST_OFFICIAL_CMD_TAPS is not set"
end
def needs_macos
@@ -274,8 +273,8 @@ class IntegrationCommandTests < Homebrew::TestCase
cmd("help", "cat")) # Internal command (documented, Ruby).
assert_match(/^brew update /,
cmd("help", "update")) # Internal command (documented, Shell).
- assert_match(/^brew test-bot /,
- cmd("help", "test-bot")) # Internal developer command (documented, Ruby).
+ assert_match(/^brew update-test /,
+ cmd("help", "update-test")) # Internal developer command (documented, Ruby).
end
def test_config
diff --git a/Library/Homebrew/test/test_os_mac_dependency_collector.rb b/Library/Homebrew/test/test_os_mac_dependency_collector.rb
index 37b619101..05b466c94 100644
--- a/Library/Homebrew/test/test_os_mac_dependency_collector.rb
+++ b/Library/Homebrew/test/test_os_mac_dependency_collector.rb
@@ -2,6 +2,10 @@ require "testing_env"
require "dependency_collector"
class OSMacDependencyCollectorTests < Homebrew::TestCase
+ def find_dependency(name)
+ @d.deps.find { |dep| dep.name == name }
+ end
+
def setup
@d = DependencyCollector.new
end
@@ -19,4 +23,16 @@ class OSMacDependencyCollectorTests < Homebrew::TestCase
MacOS.stubs(:version).returns(MacOS::Version.new("10.5"))
assert_nil @d.build(:ld64)
end
+
+ def test_ant_dep_mavericks_or_newer
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.9"))
+ @d.add ant: :build
+ assert_equal find_dependency("ant"), Dependency.new("ant", [:build])
+ end
+
+ def test_ant_dep_pre_mavericks
+ MacOS.stubs(:version).returns(MacOS::Version.new("10.7"))
+ @d.add ant: :build
+ assert_nil find_dependency("ant")
+ end
end
diff --git a/Library/Homebrew/test/test_pathname.rb b/Library/Homebrew/test/test_pathname.rb
index bc13241a7..2f6360719 100644
--- a/Library/Homebrew/test/test_pathname.rb
+++ b/Library/Homebrew/test/test_pathname.rb
@@ -26,7 +26,7 @@ class PathnameTests < Homebrew::TestCase
mkdir_p @dir/"a-directory"
touch @dir/".DS_Store"
touch @dir/"a-file"
- File.truncate(@dir/"a-file", 1048576)
+ File.truncate(@dir/"a-file", 1_048_576)
ln_s @dir/"a-file", @dir/"a-symlink"
ln @dir/"a-file", @dir/"a-hardlink"
assert_equal 3, @dir.file_count
diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb
index 2a1a33a59..21bf324a3 100644
--- a/Library/Homebrew/test/test_versions.rb
+++ b/Library/Homebrew/test/test_versions.rb
@@ -63,6 +63,8 @@ class VersionComparisonTests < Homebrew::TestCase
end
def test_comparing_alpha_versions
+ assert_operator version("1.2.3alpha"), :<, version("1.2.3")
+ assert_operator version("1.2.3"), :<, version("1.2.3a")
assert_operator version("1.2.3alpha4"), :==, version("1.2.3a4")
assert_operator version("1.2.3alpha4"), :==, version("1.2.3A4")
assert_operator version("1.2.3alpha4"), :>, version("1.2.3alpha3")
@@ -203,6 +205,10 @@ class VersionParsingTests < Homebrew::TestCase
assert_version_detected "0.7.1", "https://codeload.github.com/gsamokovarov/jump/tar.gz/v0.7.1"
end
+ def test_elasticsearch_alpha_style
+ assert_version_detected "5.0.0-alpha5", "https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/5.0.0-alpha5/elasticsearch-5.0.0-alpha5.tar.gz"
+ end
+
def test_gloox_beta_style
assert_version_detected "1.0-beta7", "http://camaya.net/download/gloox-1.0-beta7.tar.bz2"
end
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index 164c812ea..02264aa39 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
@@ -56,9 +57,8 @@ module Homebrew
super
files_after_test = []
Find.find(TEST_TMPDIR) { |f| files_after_test << f.sub(TEST_TMPDIR, "") }
- if @__files_before_test != files_after_test
- @@log.puts location, diff(@__files_before_test, files_after_test)
- end
+ return if @__files_before_test == files_after_test
+ @@log.puts location, diff(@__files_before_test, files_after_test)
end
end