diff options
| author | Mike McQuaid | 2016-09-24 20:48:03 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-09-24 20:48:03 +0100 |
| commit | e767fd3df9d179fca0445cc0bc0fdc061ad857d6 (patch) | |
| tree | 93e9db33313b36eebe7d7fb3aedf0f92cc2c3918 /Library/Homebrew/test | |
| parent | 7fc241765e3654718235791c32e5638bf7f8e15a (diff) | |
| parent | 232078df57418004bb9bf7abef877e734fcf7005 (diff) | |
| download | brew-e767fd3df9d179fca0445cc0bc0fdc061ad857d6.tar.bz2 | |
Merge branch 'master' into mkdir_with_intermediates
Diffstat (limited to 'Library/Homebrew/test')
| -rwxr-xr-x | Library/Homebrew/test/.simplecov | 45 | ||||
| -rw-r--r-- | Library/Homebrew/test/Gemfile | 10 | ||||
| -rw-r--r-- | Library/Homebrew/test/Gemfile.lock | 8 | ||||
| -rw-r--r-- | Library/Homebrew/test/Rakefile | 29 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_cmd_testbot.rb | 99 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_dependency_collector.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_diagnostic.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_download_strategies.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_formula.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_inreplace.rb | 13 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_integration_cmds.rb | 9 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_os_mac_dependency_collector.rb | 16 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_pathname.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_versions.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/test/testing_env.rb | 8 |
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 |
