1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Move spec/rubyspec to spec/ruby for consistency

* Other ruby implementations use the spec/ruby directory.
  [Misc #13792] [ruby-core:82287]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
eregon 2017-09-20 20:18:52 +00:00
parent 75bfc6440d
commit 1d15d5f080
4370 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,12 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/enque', __FILE__)
require File.expand_path('../shared/enque', __FILE__)
describe "Thread::SizedQueue#<<" do
it_behaves_like :queue_enq, :<<, -> { SizedQueue.new(10) }
end
describe "Thread::SizedQueue#<<" do
it_behaves_like :sizedqueue_enq, :<<
end

View file

@ -0,0 +1,9 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/clear', __FILE__)
describe "Thread::SizedQueue#clear" do
it_behaves_like :queue_clear, :clear, -> { SizedQueue.new(10) }
# TODO: test for atomicity of Queue#clear
end

View file

@ -0,0 +1,9 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/close', __FILE__)
ruby_version_is "2.3" do
describe "SizedQueue#close" do
it_behaves_like :queue_close, :close, -> { SizedQueue.new(10) }
end
end

View file

@ -0,0 +1,9 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/closed', __FILE__)
ruby_version_is "2.3" do
describe "SizedQueue#closed?" do
it_behaves_like :queue_closed?, :closed?, -> { SizedQueue.new(10) }
end
end

View file

@ -0,0 +1,7 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/deque', __FILE__)
describe "Thread::SizedQueue#deq" do
it_behaves_like :queue_deq, :deq, -> { SizedQueue.new(10) }
end

View file

@ -0,0 +1,7 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/empty', __FILE__)
describe "Thread::SizedQueue#empty?" do
it_behaves_like :queue_empty?, :empty?, -> { SizedQueue.new(10) }
end

View file

@ -0,0 +1,12 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/enque', __FILE__)
require File.expand_path('../shared/enque', __FILE__)
describe "Thread::SizedQueue#enq" do
it_behaves_like :queue_enq, :enq, -> { SizedQueue.new(10) }
end
describe "Thread::SizedQueue#enq" do
it_behaves_like :sizedqueue_enq, :enq
end

View file

@ -0,0 +1,7 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/length', __FILE__)
describe "Thread::SizedQueue#length" do
it_behaves_like :queue_length, :length, -> { SizedQueue.new(10) }
end

View file

@ -0,0 +1,52 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
describe "Thread::SizedQueue#max" do
before :each do
@sized_queue = SizedQueue.new(5)
end
it "returns the size of the queue" do
@sized_queue.max.should == 5
end
end
describe "Thread::SizedQueue#max=" do
before :each do
@sized_queue = SizedQueue.new(5)
end
it "sets the size of the queue" do
@sized_queue.max.should == 5
@sized_queue.max = 10
@sized_queue.max.should == 10
end
it "does not remove items already in the queue beyond the maximum" do
@sized_queue.enq 1
@sized_queue.enq 2
@sized_queue.enq 3
@sized_queue.max = 2
(@sized_queue.size > @sized_queue.max).should be_true
@sized_queue.deq.should == 1
@sized_queue.deq.should == 2
@sized_queue.deq.should == 3
end
it "raises a TypeError when given a non-numeric value" do
lambda { @sized_queue.max = "foo" }.should raise_error(TypeError)
lambda { @sized_queue.max = Object.new }.should raise_error(TypeError)
end
it "raises an argument error when set to zero" do
@sized_queue.max.should == 5
lambda { @sized_queue.max = 0 }.should raise_error(ArgumentError)
@sized_queue.max.should == 5
end
it "raises an argument error when set to a negative number" do
@sized_queue.max.should == 5
lambda { @sized_queue.max = -1 }.should raise_error(ArgumentError)
@sized_queue.max.should == 5
end
end

View file

@ -0,0 +1,25 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
describe "Thread::SizedQueue#new" do
it "returns a new SizedQueue" do
SizedQueue.new(1).should be_kind_of(SizedQueue)
end
it "raises a TypeError when the given argument is not Numeric" do
lambda { SizedQueue.new("foo") }.should raise_error(TypeError)
lambda { SizedQueue.new(Object.new) }.should raise_error(TypeError)
end
it "raises an argument error when no argument is given" do
lambda { SizedQueue.new }.should raise_error(ArgumentError)
end
it "raises an argument error when the given argument is zero" do
lambda { SizedQueue.new(0) }.should raise_error(ArgumentError)
end
it "raises an argument error when the given argument is negative" do
lambda { SizedQueue.new(-1) }.should raise_error(ArgumentError)
end
end

View file

@ -0,0 +1,18 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/num_waiting', __FILE__)
describe "Thread::SizedQueue#num_waiting" do
it_behaves_like :queue_num_waiting, :num_waiting, -> { SizedQueue.new(10) }
it "reports the number of threads waiting to push" do
q = SizedQueue.new(1)
q.push(1)
t = Thread.new { q.push(2) }
sleep 0.05 until t.stop?
q.num_waiting.should == 1
q.pop
t.join
end
end

View file

@ -0,0 +1,7 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/deque', __FILE__)
describe "Thread::SizedQueue#pop" do
it_behaves_like :queue_deq, :pop, -> { SizedQueue.new(10) }
end

View file

@ -0,0 +1,12 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/enque', __FILE__)
require File.expand_path('../shared/enque', __FILE__)
describe "Thread::SizedQueue#push" do
it_behaves_like :queue_enq, :push, -> { SizedQueue.new(10) }
end
describe "Thread::SizedQueue#push" do
it_behaves_like :sizedqueue_enq, :push
end

View file

@ -0,0 +1,34 @@
describe :sizedqueue_enq, shared: true do
it "blocks if queued elements exceed size" do
q = SizedQueue.new(1)
q.size.should == 0
q.send(@method, :first_element)
q.size.should == 1
blocked_thread = Thread.new { q.send(@method, :second_element) }
sleep 0.01 until blocked_thread.stop?
q.size.should == 1
q.pop.should == :first_element
blocked_thread.join
q.size.should == 1
q.pop.should == :second_element
q.size.should == 0
end
it "raises a ThreadError if queued elements exceed size when not blocking" do
q = SizedQueue.new(2)
non_blocking = true
add_to_queue = lambda { q.send(@method, Object.new, non_blocking) }
q.size.should == 0
add_to_queue.call
q.size.should == 1
add_to_queue.call
q.size.should == 2
add_to_queue.should raise_error(ThreadError)
end
end

View file

@ -0,0 +1,7 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/deque', __FILE__)
describe "Thread::SizedQueue#shift" do
it_behaves_like :queue_deq, :shift, -> { SizedQueue.new(10) }
end

View file

@ -0,0 +1,7 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require 'thread'
require File.expand_path('../../shared/queue/length', __FILE__)
describe "Thread::SizedQueue#size" do
it_behaves_like :queue_length, :size, -> { SizedQueue.new(10) }
end