class ForkingExecutor
Public Class Methods
new(size)
click to toggle source
# File actionpack/test/abstract_unit.rb, line 380 def initialize(size) @size = size @queue = Server.new file = File.join Dir.tmpdir, Dir::Tmpname.make_tmpname("quails-tests", "fd") @url = "drbunix://#{file}" @pool = nil DRb.start_service @url, @queue end
Public Instance Methods
<<(work)
click to toggle source
# File actionpack/test/abstract_unit.rb, line 389 def <<(work); @queue << work; end
shutdown()
click to toggle source
# File actionpack/test/abstract_unit.rb, line 391 def shutdown pool = @size.times.map { fork { DRb.stop_service queue = DRbObject.new_with_uri @url while job = queue.pop klass = job[0] method = job[1] reporter = job[2] result = Minitest.run_one_method klass, method if result.error? translate_exceptions result end queue.record reporter, result end } } @size.times { @queue << nil } pool.each { |pid| Process.waitpid pid } end
Private Instance Methods
translate_exceptions(result)
click to toggle source
# File actionpack/test/abstract_unit.rb, line 413 def translate_exceptions(result) result.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