In Files

  • test/unit.rb

Test::Unit::Runner::Worker

Attributes

file[RW]
io[R]
loadpath[RW]
pid[R]
quit_called[R]
real_file[RW]
status[RW]

Public Class Methods

launch(ruby,args=[]) click to toggle source
 
               # File test/unit.rb, line 263
def self.launch(ruby,args=[])
  io = IO.popen([*ruby,
                "#{File.dirname(__FILE__)}/unit/parallel.rb",
                *args], "rb+")
  new(io, io.pid, :waiting)
end
            
new(io, pid, status) click to toggle source
 
               # File test/unit.rb, line 272
def initialize(io, pid, status)
  @io = io
  @pid = pid
  @status = status
  @file = nil
  @real_file = nil
  @loadpath = []
  @hooks = {}
  @quit_called = false
end
            

Public Instance Methods

close() click to toggle source
 
               # File test/unit.rb, line 314
def close
  @io.close unless @io.closed?
  self
rescue IOError
end
            
died(*additional) click to toggle source
 
               # File test/unit.rb, line 332
def died(*additional)
  @status = :quit
  @io.close

  call_hook(:dead,*additional)
end
            
hook(id,&block) click to toggle source
 
               # File test/unit.rb, line 303
def hook(id,&block)
  @hooks[id] ||= []
  @hooks[id] << block
  self
end
            
kill() click to toggle source
 
               # File test/unit.rb, line 327
def kill
  Process.kill(:KILL, @pid)
rescue Errno::ESRCH
end
            
puts(*args) click to toggle source
 
               # File test/unit.rb, line 283
def puts(*args)
  @io.puts(*args)
end
            
quit() click to toggle source
 
               # File test/unit.rb, line 320
def quit
  return if @io.closed?
  @quit_called = true
  @io.puts "quit"
  @io.close
end
            
read() click to toggle source
 
               # File test/unit.rb, line 309
def read
  res = (@status == :quit) ? @io.read : @io.gets
  res && res.chomp
end
            
run(task,type) click to toggle source
 
               # File test/unit.rb, line 287
def run(task,type)
  @file = File.basename(task, ".rb")
  @real_file = task
  begin
    puts "loadpath #{[Marshal.dump($:-@loadpath)].pack("m0")}"
    @loadpath = $:.dup
    puts "run #{task} #{type}"
    @status = :prepare
  rescue Errno::EPIPE
    died
  rescue IOError
    raise unless ["stream closed","closed stream"].include? $!.message
    died
  end
end
            
to_s() click to toggle source
 
               # File test/unit.rb, line 339
def to_s
  if @file
    "#{@pid}=#{@file}"
  else
    "#{@pid}:#{@status.to_s.ljust(7)}"
  end
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus