Methods
Instance Public methods
run_in_isolation(&blk)
Link
# File activesupport/lib/active_support/testing/isolation.rb, line 25 def run_in_isolation(&blk) read, write = IO.pipe read.binmode write.binmode pid = fork do read.close yield begin if error? failures.map! { |e| begin Marshal.dump e e rescue TypeError ex = Exception.new e.message ex.set_backtrace e.backtrace Minitest::UnexpectedError.new ex end } end result = Marshal.dump(dup) end write.puts [result].pack("m") exit! end write.close result = read.read Process.wait2(pid) return result.unpack("m")[0] end