diff options
author | ryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-23 21:26:34 +0000 |
---|---|---|
committer | ryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-23 21:26:34 +0000 |
commit | 7cda8222ca6fa109e531705579164f56f29f8068 (patch) | |
tree | 39ed9150c46a0a176943f14dc7bfe370d5db7159 /lib/minitest/parallel_each.rb | |
parent | b54f42c93f5e684c5df380c8ab1c2348c5eec017 (diff) |
lib/minitest removed.
Need to support proper gem packaging / installation before minitest 5 can be added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/minitest/parallel_each.rb')
-rw-r--r-- | lib/minitest/parallel_each.rb | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/lib/minitest/parallel_each.rb b/lib/minitest/parallel_each.rb deleted file mode 100644 index e1020b35a0..0000000000 --- a/lib/minitest/parallel_each.rb +++ /dev/null @@ -1,80 +0,0 @@ -# encoding: utf-8 -###################################################################### -# This file is imported from the minitest project. -# DO NOT make modifications in this repo. They _will_ be reverted! -# File a patch instead and assign it to Ryan Davis. -###################################################################### - -## -# Provides a parallel #each that lets you enumerate using N threads. -# Use environment variable N to customize. Defaults to 2. Enumerable, -# so all the goodies come along (tho not all are wrapped yet to -# return another ParallelEach instance). - -class ParallelEach - require 'thread' - include Enumerable - - ## - # How many Threads to use for this parallel #each. - - N = (ENV['N'] || 2).to_i - - ## - # Create a new ParallelEach instance over +list+. - - def initialize list - @queue = Queue.new # *sigh*... the Queue api sucks sooo much... - - list.each { |i| @queue << i } - N.times { @queue << nil } - end - - def grep pattern # :nodoc: - self.class.new super - end - - def select(&block) # :nodoc: - self.class.new super - end - - alias find_all select # :nodoc: - - ## - # Starts N threads that yield each element to your block. Joins the - # threads at the end. - - def each - threads = N.times.map { - Thread.new do - Thread.current.abort_on_exception = true - while job = @queue.pop - yield job - end - end - } - threads.map(&:join) - end - - def count - [@queue.size - N, 0].max - end - - alias_method :size, :count -end - -class MiniTest::Unit - alias _old_run_suites _run_suites - - ## - # Runs all the +suites+ for a given +type+. Runs suites declaring - # a test_order of +:parallel+ in parallel, and everything else - # serial. - - def _run_suites suites, type - parallel, serial = suites.partition { |s| s.test_order == :parallel } - - ParallelEach.new(parallel).map { |suite| _run_suite suite, type } + - serial.map { |suite| _run_suite suite, type } - end -end |