Sha256: a285aa31542dc3e395deed9ddf0ba6eca0dbc43386b3e4976fdc36a06cf02452
Contents?: true
Size: 1.55 KB
Versions: 6
Compression:
Stored size: 1.55 KB
Contents
#!/usr/bin/env ruby require 'test/unit' require 'thread' require 'rake' ###################################################################### class TestMultiTask < Test::Unit::TestCase include Rake def setup Task.clear @runs = Array.new @mutex = Mutex.new end def add_run(obj) @mutex.synchronize do @runs << obj end end def test_running_multitasks task :a do 3.times do |i| add_run("A#{i}"); sleep 0.01; end end task :b do 3.times do |i| add_run("B#{i}"); sleep 0.01; end end multitask :both => [:a, :b] Task[:both].invoke assert_equal 6, @runs.size assert @runs.index("A0") < @runs.index("A1") assert @runs.index("A1") < @runs.index("A2") assert @runs.index("B0") < @runs.index("B1") assert @runs.index("B1") < @runs.index("B2") end def test_all_multitasks_wait_on_slow_prerequisites task :slow do 3.times do |i| add_run("S#{i}"); sleep 0.05 end end task :a => [:slow] do 3.times do |i| add_run("A#{i}"); sleep 0.01 end end task :b => [:slow] do 3.times do |i| add_run("B#{i}"); sleep 0.01 end end multitask :both => [:a, :b] Task[:both].invoke assert_equal 9, @runs.size assert @runs.index("S0") < @runs.index("S1") assert @runs.index("S1") < @runs.index("S2") assert @runs.index("S2") < @runs.index("A0") assert @runs.index("S2") < @runs.index("B0") assert @runs.index("A0") < @runs.index("A1") assert @runs.index("A1") < @runs.index("A2") assert @runs.index("B0") < @runs.index("B1") assert @runs.index("B1") < @runs.index("B2") end end
Version data entries
6 entries across 6 versions & 1 rubygems