diff options
Diffstat (limited to 'spec/ruby/shared/queue')
| -rw-r--r-- | spec/ruby/shared/queue/clear.rb | 4 | ||||
| -rw-r--r-- | spec/ruby/shared/queue/close.rb | 4 | ||||
| -rw-r--r-- | spec/ruby/shared/queue/closed.rb | 4 | ||||
| -rw-r--r-- | spec/ruby/shared/queue/deque.rb | 132 | ||||
| -rw-r--r-- | spec/ruby/shared/queue/empty.rb | 4 | ||||
| -rw-r--r-- | spec/ruby/shared/queue/enque.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/shared/queue/freeze.rb | 8 |
7 files changed, 80 insertions, 78 deletions
diff --git a/spec/ruby/shared/queue/clear.rb b/spec/ruby/shared/queue/clear.rb index 5db5a5b497..742468a859 100644 --- a/spec/ruby/shared/queue/clear.rb +++ b/spec/ruby/shared/queue/clear.rb @@ -3,9 +3,9 @@ describe :queue_clear, shared: true do queue = @object.call queue << Object.new queue << 1 - queue.empty?.should be_false + queue.empty?.should == false queue.clear - queue.empty?.should be_true + queue.empty?.should == true end # TODO: test for atomicity of Queue#clear diff --git a/spec/ruby/shared/queue/close.rb b/spec/ruby/shared/queue/close.rb index 0e7c69acba..1b0908c27c 100644 --- a/spec/ruby/shared/queue/close.rb +++ b/spec/ruby/shared/queue/close.rb @@ -2,9 +2,9 @@ describe :queue_close, shared: true do it "may be called multiple times" do q = @object.call q.close - q.closed?.should be_true + q.closed?.should == true q.close # no effect - q.closed?.should be_true + q.closed?.should == true end it "returns self" do diff --git a/spec/ruby/shared/queue/closed.rb b/spec/ruby/shared/queue/closed.rb index b3cea0c524..8a7d65055f 100644 --- a/spec/ruby/shared/queue/closed.rb +++ b/spec/ruby/shared/queue/closed.rb @@ -1,12 +1,12 @@ describe :queue_closed?, shared: true do it "returns false initially" do queue = @object.call - queue.closed?.should be_false + queue.closed?.should == false end it "returns true when the queue is closed" do queue = @object.call queue.close - queue.closed?.should be_true + queue.closed?.should == true end end diff --git a/spec/ruby/shared/queue/deque.rb b/spec/ruby/shared/queue/deque.rb index 9e6b45009d..45cbc4a995 100644 --- a/spec/ruby/shared/queue/deque.rb +++ b/spec/ruby/shared/queue/deque.rb @@ -65,70 +65,64 @@ describe :queue_deq, shared: true do end describe "with a timeout" do - ruby_version_is "3.2" do - it "returns an item if one is available in time" do - q = @object.call - - t = Thread.new { - q.send(@method, timeout: 1).should == 1 - } - Thread.pass until t.status == "sleep" && q.num_waiting == 1 - q << 1 - t.join - end - - it "returns nil if no item is available in time" do - q = @object.call - - t = Thread.new { - q.send(@method, timeout: 0.1).should == nil - } - t.join - end - - it "does nothing if the timeout is nil" do - q = @object.call - t = Thread.new { - q.send(@method, timeout: nil).should == 1 - } - t.join(0.2).should == nil - q << 1 - t.join - end - - it "immediately returns nil if no item is available and the timeout is 0" do - q = @object.call - q << 1 - q.send(@method, timeout: 0).should == 1 - q.send(@method, timeout: 0).should == nil - end - - it "raise TypeError if timeout is not a valid numeric" do - q = @object.call - -> { q.send(@method, timeout: "1") }.should raise_error( - TypeError, - "no implicit conversion to float from string", - ) - - -> { q.send(@method, timeout: false) }.should raise_error( - TypeError, - "no implicit conversion to float from false", - ) - end - - it "raise ArgumentError if non_block = true is passed too" do - q = @object.call - -> { q.send(@method, true, timeout: 1) }.should raise_error( - ArgumentError, - "can't set a timeout if non_block is enabled", - ) - end - - it "returns nil for a closed empty queue" do - q = @object.call - q.close - q.send(@method, timeout: 0).should == nil - end + it "returns an item if one is available in time" do + q = @object.call + + t = Thread.new { + q.send(@method, timeout: TIME_TOLERANCE).should == 1 + } + Thread.pass until t.status == "sleep" && q.num_waiting == 1 + q << 1 + t.join + end + + it "returns nil if no item is available in time" do + q = @object.call + + Thread.new { + q.send(@method, timeout: 0.001).should == nil + }.join + end + + it "does nothing if the timeout is nil" do + q = @object.call + t = Thread.new { + q.send(@method, timeout: nil).should == 1 + } + Thread.pass until t.status == "sleep" && q.num_waiting == 1 + q << 1 + t.join + end + + it "immediately returns nil if no item is available and the timeout is 0" do + q = @object.call + q << 1 + q.send(@method, timeout: 0).should == 1 + q.send(@method, timeout: 0).should == nil + end + + it "raise TypeError if timeout is not a valid numeric" do + q = @object.call + -> { + q.send(@method, timeout: "1") + }.should raise_consistent_error(TypeError, "no implicit conversion of String into Float") + + -> { + q.send(@method, timeout: false) + }.should raise_consistent_error(TypeError, "no implicit conversion of false into Float") + end + + it "raise ArgumentError if non_block = true is passed too" do + q = @object.call + -> { + q.send(@method, true, timeout: 1) + }.should.raise(ArgumentError, "can't set a timeout if non_block is enabled") + end + + it "returns nil for a closed empty queue" do + q = @object.call + q.close + q.send(@method, timeout: 0).should == nil end end @@ -143,7 +137,7 @@ describe :queue_deq, shared: true do it "raises a ThreadError if the queue is empty" do q = @object.call - -> { q.send(@method, true) }.should raise_error(ThreadError) + -> { q.send(@method, true) }.should.raise(ThreadError) end it "removes an item from a closed queue" do @@ -156,15 +150,15 @@ describe :queue_deq, shared: true do it "raises a ThreadError for a closed empty queue" do q = @object.call q.close - -> { q.send(@method, true) }.should raise_error(ThreadError) + -> { q.send(@method, true) }.should.raise(ThreadError) end it "converts true-ish non_blocking argument to true" do q = @object.call - -> { q.send(@method, true) }.should raise_error(ThreadError) - -> { q.send(@method, 1) }.should raise_error(ThreadError) - -> { q.send(@method, "") }.should raise_error(ThreadError) + -> { q.send(@method, true) }.should.raise(ThreadError) + -> { q.send(@method, 1) }.should.raise(ThreadError) + -> { q.send(@method, "") }.should.raise(ThreadError) end end end diff --git a/spec/ruby/shared/queue/empty.rb b/spec/ruby/shared/queue/empty.rb index 4acd831d48..052ce6ac23 100644 --- a/spec/ruby/shared/queue/empty.rb +++ b/spec/ruby/shared/queue/empty.rb @@ -1,12 +1,12 @@ describe :queue_empty?, shared: true do it "returns true on an empty Queue" do queue = @object.call - queue.empty?.should be_true + queue.empty?.should == true end it "returns false when Queue is not empty" do queue = @object.call queue << Object.new - queue.empty?.should be_false + queue.empty?.should == false end end diff --git a/spec/ruby/shared/queue/enque.rb b/spec/ruby/shared/queue/enque.rb index 8aba02e544..61d962b788 100644 --- a/spec/ruby/shared/queue/enque.rb +++ b/spec/ruby/shared/queue/enque.rb @@ -13,6 +13,6 @@ describe :queue_enq, shared: true do q.close -> { q.send @method, Object.new - }.should raise_error(ClosedQueueError) + }.should.raise(ClosedQueueError) end end diff --git a/spec/ruby/shared/queue/freeze.rb b/spec/ruby/shared/queue/freeze.rb new file mode 100644 index 0000000000..7f1f72fd7e --- /dev/null +++ b/spec/ruby/shared/queue/freeze.rb @@ -0,0 +1,8 @@ +describe :queue_freeze, shared: true do + it "raises an exception when freezing" do + queue = @object.call + -> { + queue.freeze + }.should.raise(TypeError, "cannot freeze #{queue}") + end +end |
