ruby-changes:21121
From: nagachika <ko1@a...>
Date: Sat, 3 Sep 2011 18:47:01 +0900 (JST)
Subject: [ruby-changes:21121] nagachika:r33170 (trunk): * lib/thread.rb (SizedQueue#max=) raise ArgumentError if max is not
nagachika 2011-09-03 18:46:51 +0900 (Sat, 03 Sep 2011) New Revision: 33170 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33170 Log: * lib/thread.rb (SizedQueue#max=) raise ArgumentError if max is not positive number. patch by Masaki Matsushita. [ruby-dev:44449] [Bug #5259] * test/thread/test_queue.rb (test_sized_queue_initialize, test_sized_queue_assign_max): add tests for it. Modified files: trunk/ChangeLog trunk/lib/thread.rb trunk/test/thread/test_queue.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 33169) +++ ChangeLog (revision 33170) @@ -1,3 +1,12 @@ +Sat Sep 3 18:40:57 2011 CHIKANAGA Tomoyuki <nagachika00@g...> + + * lib/thread.rb (SizedQueue#max=) raise ArgumentError if max is not + positive number. patch by Masaki Matsushita. + [ruby-dev:44449] [Bug #5259] + + * test/thread/test_queue.rb (test_sized_queue_initialize, + test_sized_queue_assign_max): add tests for it. + Fri Sep 2 21:11:16 2011 Nobuyoshi Nakada <nobu@r...> * io.c (validate_enc_binmode, prep_stdio): default to text mode on Index: lib/thread.rb =================================================================== --- lib/thread.rb (revision 33169) +++ lib/thread.rb (revision 33170) @@ -269,6 +269,7 @@ # Sets the maximum size of the queue. # def max=(max) + raise ArgumentError, "queue size must be positive" unless max > 0 diff = nil @mutex.synchronize { if max <= @max Index: test/thread/test_queue.rb =================================================================== --- test/thread/test_queue.rb (revision 33169) +++ test/thread/test_queue.rb (revision 33170) @@ -35,4 +35,22 @@ assert_equal 0, from_workers.size assert_equal 0, to_workers.size end + + def test_sized_queue_initialize + q = SizedQueue.new(1) + assert_equal 1, q.max + assert_raise(ArgumentError) { SizedQueue.new(0) } + assert_raise(ArgumentError) { SizedQueue.new(-1) } + end + + def test_sized_queue_assign_max + q = SizedQueue.new(2) + assert_equal(2, q.max) + q.max = 1 + assert_equal(1, q.max) + assert_raise(ArgumentError) { q.max = 0 } + assert_equal(1, q.max) + assert_raise(ArgumentError) { q.max = -1 } + assert_equal(1, q.max) + end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/