aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorJack Nagel2014-06-23 19:38:28 -0500
committerJack Nagel2014-06-23 23:28:25 -0500
commitacf76f3f5502846f21933cbf77302f332f18c1c1 (patch)
tree3c4156d264b2b28d47d676fdcab496ec9bc99fcf /Library/Homebrew/test
parent5ab65d0b25f2ab56fb4aa12781498d3e6a7a5991 (diff)
downloadbrew-acf76f3f5502846f21933cbf77302f332f18c1c1.tar.bz2
Add module for logging filesystem leaks in tests
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/testing_env.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index 623973cde..c00bff6f8 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -90,8 +90,32 @@ module Homebrew
end
end
+ module FSLeakLogger
+ def self.included(klass)
+ require "find"
+ @@log = File.open("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, "") }
+ if @__files_before_test != files_after_test
+ @@log.puts location, diff(@__files_before_test, files_after_test)
+ end
+ end
+ end
+
class TestCase < ::Minitest::Test
include VersionAssertions
+ include FSLeakLogger if ENV["LOG_FS_LEAKS"]
TEST_SHA1 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze