Skip to content
Snippets Groups Projects
Commit 574a5274 authored by Markus Reiter's avatar Markus Reiter Committed by GitHub
Browse files

Merge pull request #1913 from reitermarkus/testing-env

Use array of constants to set up test directories.
parents 01c13720 77401b78
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@ source "https://rubygems.org"
gem "mocha"
gem "minitest"
gem "minitest-reporters"
gem "parallel_tests"
group :coverage do
......
GEM
remote: https://rubygems.org/
specs:
ansi (1.5.0)
builder (3.2.3)
codecov (0.1.9)
json
simplecov
......@@ -9,11 +11,17 @@ GEM
json (2.0.3)
metaclass (0.0.4)
minitest (5.10.1)
minitest-reporters (1.1.14)
ansi
builder
minitest (>= 5.0)
ruby-progressbar
mocha (1.2.1)
metaclass (~> 0.0.1)
parallel (1.10.0)
parallel_tests (2.13.0)
parallel
ruby-progressbar (1.8.1)
simplecov (0.13.0)
docile (~> 1.1.0)
json (>= 1.8, < 3)
......@@ -27,6 +35,7 @@ PLATFORMS
DEPENDENCIES
codecov
minitest
minitest-reporters
mocha
parallel_tests
simplecov
......
......@@ -9,13 +9,13 @@ module Test
klass.make_my_diffs_pretty!
end
def before_setup
def setup
@__files_before_test = []
Find.find(TEST_TMPDIR) { |f| @__files_before_test << f.sub(TEST_TMPDIR, "") }
super
end
def after_teardown
def teardown
super
files_after_test = []
Find.find(TEST_TMPDIR) { |f| files_after_test << f.sub(TEST_TMPDIR, "") }
......
require "formulary"
require "tap"
module Homebrew
class TestCase < ::Minitest::Test
require "test/support/helper/fs_leak_logger"
......@@ -12,7 +15,21 @@ module Homebrew
TEST_SHA1 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
TEST_DIRECTORIES = [
CoreTap.instance.path/"Formula",
HOMEBREW_CACHE,
HOMEBREW_CACHE_FORMULA,
HOMEBREW_CELLAR,
HOMEBREW_LOCK_DIR,
HOMEBREW_LOGS,
HOMEBREW_TEMP,
].freeze
def setup
# These directories need to be created before
# `FSLeakLogger` is called with `super`.
TEST_DIRECTORIES.each(&:mkpath)
super
@__argv = ARGV.dup
......@@ -25,15 +42,10 @@ module Homebrew
Tab.clear_cache
coretap = CoreTap.new
paths_to_delete = [
FileUtils.rm_rf [
TEST_DIRECTORIES.map(&:children),
HOMEBREW_LINKED_KEGS,
HOMEBREW_PINNED_KEGS,
HOMEBREW_CELLAR.children,
HOMEBREW_CACHE.children,
HOMEBREW_LOCK_DIR.children,
HOMEBREW_LOGS.children,
HOMEBREW_TEMP.children,
HOMEBREW_PREFIX/".git",
HOMEBREW_PREFIX/"bin",
HOMEBREW_PREFIX/"share",
......@@ -45,12 +57,10 @@ module Homebrew
HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-services",
HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-shallow",
HOMEBREW_REPOSITORY/".git",
coretap.path/".git",
coretap.alias_dir,
coretap.formula_dir.children,
coretap.path/"formula_renames.json",
].flatten
FileUtils.rm_rf paths_to_delete
CoreTap.instance.path/".git",
CoreTap.instance.alias_dir,
CoreTap.instance.path/"formula_renames.json",
]
super
end
......
$:.unshift File.expand_path("../..", __FILE__)
$:.unshift File.expand_path("../support/lib", __FILE__)
require "simplecov" if ENV["HOMEBREW_TESTS_COVERAGE"]
require "global"
require "formulary"
# Test environment setup
(HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-core/Formula").mkpath
%w[cache formula_cache locks cellar logs temp].each { |d| HOMEBREW_PREFIX.parent.join(d).mkpath }
begin
require "minitest/autorun"
require "parallel_tests/test/runtime_logger"
require "minitest/reporters"
Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true)
require "mocha/setup"
require "parallel_tests/test/runtime_logger"
require "simplecov" if ENV["HOMEBREW_TESTS_COVERAGE"]
rescue LoadError
abort "Run `bundle install` or install the mocha and minitest gems before running the tests"
abort "Run `bundle install` before running the tests."
end
$LOAD_PATH.unshift(File.expand_path("#{ENV["HOMEBREW_LIBRARY"]}/Homebrew"))
$LOAD_PATH.unshift(File.expand_path("#{ENV["HOMEBREW_LIBRARY"]}/Homebrew/test/support/lib"))
require "global"
require "test/support/helper/test_case"
require "test/support/helper/integration_command_test_case"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment