diff options
Diffstat (limited to 'spec/ruby/core/thread/thread_variables_spec.rb')
| -rw-r--r-- | spec/ruby/core/thread/thread_variables_spec.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/ruby/core/thread/thread_variables_spec.rb b/spec/ruby/core/thread/thread_variables_spec.rb new file mode 100644 index 0000000000..51ceef3376 --- /dev/null +++ b/spec/ruby/core/thread/thread_variables_spec.rb @@ -0,0 +1,39 @@ +require_relative '../../spec_helper' + +describe "Thread#thread_variables" do + before :each do + @t = Thread.new { } + end + + after :each do + @t.join + end + + it "returns the keys of all the values set" do + @t.thread_variable_set(:a, 2) + @t.thread_variable_set(:b, 4) + @t.thread_variable_set(:c, 6) + @t.thread_variables.sort.should == [:a, :b, :c] + end + + it "returns the keys private to self" do + @t.thread_variable_set(:a, 82) + @t.thread_variable_set(:b, 82) + Thread.current.thread_variables.should_not include(:a, :b) + end + + it "only contains user thread variables and is empty initially" do + Thread.current.thread_variables.should == [] + @t.thread_variables.should == [] + end + + it "returns keys as Symbols" do + key = mock('key') + key.should_receive(:to_str).and_return('a') + + @t.thread_variable_set(key, 49) + @t.thread_variable_set('b', 50) + @t.thread_variable_set(:c, 51) + @t.thread_variables.sort.should == [:a, :b, :c] + end +end |
