module DatabaseStalker
Constants
- DEFAULT_LOG_FILE
- DEFAULT_STALKING_LOG_FILE
- DEFAULT_STALKING_LOG_PER_TEST_FILE
- DEFAULT_STALKING_LOG_PER_TEST_TEMPORARY_FILE
- DEFAULT_TABLE_LOG_FILE
- VERSION
Public Class Methods
notify_table_deletion()
click to toggle source
# File lib/database_stalker.rb, line 80 def notify_table_deletion File.open(@stalking_log_per_test_temporary, 'a') do |file| appended_log = @log_stalker.result appended_log.each do |line| file.puts("#{line}") end end end
set_up( test_log: DEFAULT_LOG_FILE, table_log: DEFAULT_TABLE_LOG_FILE, stalking_log: DEFAULT_STALKING_LOG_FILE, stalking_log_per_test: DEFAULT_STALKING_LOG_PER_TEST_FILE, stalking_log_per_test_temporary: DEFAULT_STALKING_LOG_PER_TEST_TEMPORARY_FILE)
click to toggle source
# File lib/database_stalker.rb, line 15 def set_up( test_log: DEFAULT_LOG_FILE, table_log: DEFAULT_TABLE_LOG_FILE, stalking_log: DEFAULT_STALKING_LOG_FILE, stalking_log_per_test: DEFAULT_STALKING_LOG_PER_TEST_FILE, stalking_log_per_test_temporary: DEFAULT_STALKING_LOG_PER_TEST_TEMPORARY_FILE) @test_log = test_log @table_log = table_log @stalking_log = stalking_log @stalking_log_per_test = stalking_log_per_test @stalking_log_per_test_temporary = stalking_log_per_test_temporary File.delete(@stalking_log_per_test_temporary) if File.exist?(@stalking_log_per_test_temporary) FileUtils.touch(@stalking_log_per_test_temporary) end
stalk()
click to toggle source
# File lib/database_stalker.rb, line 30 def stalk fork do log_stalker = LogStalker.new(@test_log, @stalking_log) log_stalker.run watch_test_process log_stalker.stop used_log = [] File.open(@stalking_log_per_test_temporary, 'r') do |f| f.each_line do |line| used_log << line end end all_log = log_stalker.result parser = Parser.new(all_log.slice(used_log.size .. all_log.size - 1)) File.open(@table_log, 'w') do |file| parser.table_names.each do |table_name| file.write("#{table_name}\n") end end end wait_for_log_stalker end
stalk_per_test()
click to toggle source
# File lib/database_stalker.rb, line 68 def stalk_per_test @log_stalker = LogStalker.new(@test_log, @stalking_log_per_test) @log_stalker.run end
table_names()
click to toggle source
# File lib/database_stalker.rb, line 57 def table_names return [] if not File.exists?(@table_log) result = [] File.open(@table_log, 'r') do |f| f.each_line do |line| result << line.strip end end result end
table_names_per_test()
click to toggle source
# File lib/database_stalker.rb, line 73 def table_names_per_test @log_stalker.stop appended_log = @log_stalker.result parser = Parser.new(appended_log) parser.table_names end
Private Class Methods
wait_for_log_stalker()
click to toggle source
# File lib/database_stalker.rb, line 53 def wait_for_log_stalker sleep(0.1) end
watch_test_process()
click to toggle source
# File lib/database_stalker.rb, line 89 def watch_test_process while true return if Process.ppid == 1 end end