From 9ff1e787f915539b1980654e3d3d2013ff5c81d2 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Mon, 7 Jul 2008 07:38:25 +0000 Subject: wrong commit; sorry git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_269@17938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_6/test/monitor/test_monitor.rb | 161 -------------------------------- 1 file changed, 161 deletions(-) delete mode 100644 ruby_1_8_6/test/monitor/test_monitor.rb (limited to 'ruby_1_8_6/test/monitor/test_monitor.rb') diff --git a/ruby_1_8_6/test/monitor/test_monitor.rb b/ruby_1_8_6/test/monitor/test_monitor.rb deleted file mode 100644 index b539cb3cca..0000000000 --- a/ruby_1_8_6/test/monitor/test_monitor.rb +++ /dev/null @@ -1,161 +0,0 @@ -require "monitor" -require "thread" - -require "test/unit" - -class TestMonitor < Test::Unit::TestCase - def setup - @monitor = Monitor.new - end - - def test_enter - ary = [] - queue = Queue.new - th = Thread.start { - queue.pop - @monitor.enter - for i in 6 .. 10 - ary.push(i) - Thread.pass - end - @monitor.exit - } - @monitor.enter - queue.enq(nil) - for i in 1 .. 5 - ary.push(i) - Thread.pass - end - @monitor.exit - th.join - assert_equal((1..10).to_a, ary) - end - - def test_synchronize - ary = [] - queue = Queue.new - th = Thread.start { - queue.pop - @monitor.synchronize do - for i in 6 .. 10 - ary.push(i) - Thread.pass - end - end - } - @monitor.synchronize do - queue.enq(nil) - for i in 1 .. 5 - ary.push(i) - Thread.pass - end - end - th.join - assert_equal((1..10).to_a, ary) - end - - def test_try_enter - queue1 = Queue.new - queue2 = Queue.new - th = Thread.start { - queue1.deq - @monitor.enter - queue2.enq(nil) - queue1.deq - @monitor.exit - queue2.enq(nil) - } - assert_equal(true, @monitor.try_enter) - @monitor.exit - queue1.enq(nil) - queue2.deq - assert_equal(false, @monitor.try_enter) - queue1.enq(nil) - queue2.deq - assert_equal(true, @monitor.try_enter) - end - - def test_cond - cond = @monitor.new_cond - - a = "foo" - queue1 = Queue.new - Thread.start do - queue1.deq - @monitor.synchronize do - a = "bar" - cond.signal - end - end - @monitor.synchronize do - queue1.enq(nil) - assert_equal("foo", a) - result1 = cond.wait - assert_equal(true, result1) - assert_equal("bar", a) - end - - b = "foo" - queue2 = Queue.new - Thread.start do - queue2.deq - @monitor.synchronize do - b = "bar" - cond.signal - end - end - @monitor.synchronize do - queue2.enq(nil) - assert_equal("foo", b) - result2 = cond.wait(0.1) - assert_equal(true, result2) - assert_equal("bar", b) - end - - c = "foo" - queue3 = Queue.new - Thread.start do - queue3.deq - @monitor.synchronize do - c = "bar" - cond.signal - end - end - @monitor.synchronize do - assert_equal("foo", c) - result3 = cond.wait(0.1) - assert_equal(false, result3) - assert_equal("foo", c) - queue3.enq(nil) - result4 = cond.wait - assert_equal(true, result4) - assert_equal("bar", c) - end - -# d = "foo" -# cumber_thread = Thread.start { -# loop do -# @monitor.synchronize do -# d = "foo" -# end -# end -# } -# queue3 = Queue.new -# Thread.start do -# queue3.pop -# @monitor.synchronize do -# d = "bar" -# cond.signal -# end -# end -# @monitor.synchronize do -# queue3.enq(nil) -# assert_equal("foo", d) -# result5 = cond.wait -# assert_equal(true, result5) -# # this thread has priority over cumber_thread -# assert_equal("bar", d) -# end -# cumber_thread.kill - end -end -- cgit v1.2.3