28 lines
		
	
	
		
			789 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			789 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | 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 |