diff options
| author | Markus Reiter | 2016-11-13 21:31:53 +0100 |
|---|---|---|
| committer | Markus Reiter | 2016-11-16 23:52:38 +0100 |
| commit | 9d82acbf30e9a5d0eb06be9726803d362e2fa91e (patch) | |
| tree | 0e45d668526b3ee5130237f669f7d5dbd53d9c1d /Library/Homebrew/test/support | |
| parent | 7b9fd538fabf450203c0120f996403e24bd02071 (diff) | |
| download | brew-9d82acbf30e9a5d0eb06be9726803d362e2fa91e.tar.bz2 | |
Separate `Homebrew::TestCase` from `testing_env`.
Diffstat (limited to 'Library/Homebrew/test/support')
| -rw-r--r-- | Library/Homebrew/test/support/helper/fs_leak_logger.rb | 27 | ||||
| -rw-r--r-- | Library/Homebrew/test/support/helper/test_case.rb | 64 | ||||
| -rw-r--r-- | Library/Homebrew/test/support/helper/version_assertions.rb | 23 |
3 files changed, 114 insertions, 0 deletions
diff --git a/Library/Homebrew/test/support/helper/fs_leak_logger.rb b/Library/Homebrew/test/support/helper/fs_leak_logger.rb new file mode 100644 index 000000000..f6a02dbc0 --- /dev/null +++ b/Library/Homebrew/test/support/helper/fs_leak_logger.rb @@ -0,0 +1,27 @@ +module Test + module Helper + module FSLeakLogger + def self.included(klass) + require "find" + logdir = HOMEBREW_LIBRARY_PATH.join("tmp") + logdir.mkdir unless logdir.directory? + @@log = File.open(logdir.join("fs_leak.log"), "w") + klass.make_my_diffs_pretty! + end + + def before_setup + @__files_before_test = [] + Find.find(TEST_TMPDIR) { |f| @__files_before_test << f.sub(TEST_TMPDIR, "") } + super + end + + def after_teardown + super + files_after_test = [] + Find.find(TEST_TMPDIR) { |f| files_after_test << f.sub(TEST_TMPDIR, "") } + return if @__files_before_test == files_after_test + @@log.puts location, diff(@__files_before_test, files_after_test) + end + end + end +end diff --git a/Library/Homebrew/test/support/helper/test_case.rb b/Library/Homebrew/test/support/helper/test_case.rb new file mode 100644 index 000000000..60c91e7bb --- /dev/null +++ b/Library/Homebrew/test/support/helper/test_case.rb @@ -0,0 +1,64 @@ +module Homebrew + class TestCase < ::Minitest::Test + require "test/support/helper/env" + require "test/support/helper/fs_leak_logger" + require "test/support/helper/shutup" + require "test/support/helper/version_assertions" + include Test::Helper::Env + include Test::Helper::FSLeakLogger + include Test::Helper::Shutup + include Test::Helper::VersionAssertions + + TEST_SHA1 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze + TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze + + def formula(name = "formula_name", path = Formulary.core_path(name), spec = :stable, alias_path: nil, &block) + @_f = Class.new(Formula, &block).new(name, path, spec, alias_path: alias_path) + end + + def mktmpdir(prefix_suffix = nil, &block) + Dir.mktmpdir(prefix_suffix, HOMEBREW_TEMP, &block) + end + + def needs_compat + skip "Requires compat/ code" if ENV["HOMEBREW_NO_COMPAT"] + end + + def needs_python + skip "Requires Python" unless which("python") + end + + def assert_nothing_raised + yield + end + + def assert_eql(exp, act, msg = nil) + msg = message(msg, "") { diff exp, act } + assert exp.eql?(act), msg + end + + def refute_eql(exp, act, msg = nil) + msg = message(msg) do + "Expected #{mu_pp(act)} to not be eql to #{mu_pp(exp)}" + end + refute exp.eql?(act), msg + end + + def dylib_path(name) + Pathname.new("#{TEST_FIXTURE_DIR}/mach/#{name}.dylib") + end + + def bundle_path(name) + Pathname.new("#{TEST_FIXTURE_DIR}/mach/#{name}.bundle") + end + + # Use a stubbed {Formulary::FormulaLoader} to make a given formula be found + # when loading from {Formulary} with `ref`. + def stub_formula_loader(formula, ref = formula.full_name) + loader = mock + loader.stubs(:get_formula).returns(formula) + Formulary.stubs(:loader_for).with(ref, from: :keg).returns(loader) + Formulary.stubs(:loader_for).with(ref, from: nil).returns(loader) + end + end +end diff --git a/Library/Homebrew/test/support/helper/version_assertions.rb b/Library/Homebrew/test/support/helper/version_assertions.rb new file mode 100644 index 000000000..dc240d643 --- /dev/null +++ b/Library/Homebrew/test/support/helper/version_assertions.rb @@ -0,0 +1,23 @@ +require "rubygems" + +module Test + module Helper + module VersionAssertions + def version(v) + Version.create(v) + end + + def assert_version_equal(expected, actual) + assert_equal Version.create(expected), actual + end + + def assert_version_detected(expected, url, specs = {}) + assert_equal expected, Version.detect(url, specs).to_s + end + + def assert_version_nil(url) + assert Version.parse(url).null? + end + end + end +end |
