From acf76f3f5502846f21933cbf77302f332f18c1c1 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 23 Jun 2014 19:38:28 -0500 Subject: [PATCH] Add module for logging filesystem leaks in tests --- Library/Homebrew/test/testing_env.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb index 623973cde1..c00bff6f80 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