aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-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