36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/active_support/testing/isolation.rb', line 36
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(self.dup)
end
write.puts [result].pack("m")
exit!
end
write.close
result = read.read
Process.wait2(pid)
return result.unpack("m")[0]
end
|