Sha256: f312ffb46000330d8f42f2d68bb289541a21b7b2e3b9ebf12426bf3d9c5ca24b
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
# # testing ruote # # Wed Jul 8 15:30:55 JST 2009 # require File.join(File.dirname(__FILE__), 'concurrent_base') #require 'ruote/part/hash_participant' class CtConcurrenceTest < Test::Unit::TestCase include ConcurrentBase # A collision between two workers replying to the same concurrence expression. # # Worker 0 replies for echo 'a' while worker 1 replies for echo 'b'. # def test_collision pdef = Ruote.process_definition do concurrence do echo 'a' echo 'b' end end noisy if ARGV.include?('-N') wfid = @engine0.launch(pdef) replies = [] while replies.size < 2 msg = @engine0.next_msg if msg['action'] == 'reply' replies << msg else @engine0.do_process(msg) end end replies.sort! { |a, b| a['put_at'] <=> b['put_at'] } #replies.each { |r| p r } t0 = Thread.new { @engine1.do_process(replies[0]) } t1 = Thread.new { @engine0.do_process(replies[1]) } t0.join t1.join msgs = @engine0.gather_msgs assert_equal 1, msgs.size, 'exactly 1 message was expected' msg = msgs.first assert_equal 'reply', msg['action'] assert_equal '0', msg['fei']['expid'] end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
ruote-maestrodev-2.2.1 | test/functional/ct_0_concurrence.rb |
ruote-2.2.0 | test/functional/ct_0_concurrence.rb |