method

deal

v2_1_10 - Show latest stable - Class: Test::Unit::Runner
deal(io, type, result, rep, shutting_down = false)
public

No documentation available.

# File lib/test/unit.rb, line 527
      def deal(io, type, result, rep, shutting_down = false)
        worker = @workers_hash[io]
        case worker.read
        when /^okay$/
          worker.status = :running
          jobs_status
        when /^ready(!)?$/
          bang = $1
          worker.status = :ready

          return nil unless task = @tasks.shift
          if @options[:separate] and not bang
            worker.quit
            worker = add_worker
          end
          worker.run(task, type)
          @test_count += 1

          jobs_status
        when /^done (.+?)$/
          r = Marshal.load($1.unpack("m")[0])
          result << r[0..1] unless r[0..1] == [nil,nil]
          rep    << {file: worker.real_file, report: r[2], result: r[3], testcase: r[5]}
          $:.push(*r[4]).uniq!
          return true
        when /^p (.+?)$/
          del_jobs_status
          print $1.unpack("m")[0]
          jobs_status if @options[:job_status] == :replace
        when /^after (.+?)$/
          @warnings << Marshal.load($1.unpack("m")[0])
        when /^bye (.+?)$/
          after_worker_down worker, Marshal.load($1.unpack("m")[0])
        when /^bye$/, nil
          if shutting_down || worker.quit_called
            after_worker_quit worker
          else
            after_worker_down worker
          end
        end
        return false
      end