Sha256: dc272864255f80fbab28ef8133539d895f2b0b1e0c28392c9fdba7bab2d78b4c
Contents?: true
Size: 1.97 KB
Versions: 2
Compression:
Stored size: 1.97 KB
Contents
require 'abstract_unit' require 'active_support/core_ext/thread' class ThreadExt < ActiveSupport::TestCase def test_main_thread_variable_in_enumerator assert_equal Thread.main, Thread.current Thread.current.thread_variable_set :foo, "bar" thread, value = Fiber.new { Fiber.yield [Thread.current, Thread.current.thread_variable_get(:foo)] }.resume assert_equal Thread.current, thread assert_equal Thread.current.thread_variable_get(:foo), value end def test_thread_variable_in_enumerator Thread.new { Thread.current.thread_variable_set :foo, "bar" thread, value = Fiber.new { Fiber.yield [Thread.current, Thread.current.thread_variable_get(:foo)] }.resume assert_equal Thread.current, thread assert_equal Thread.current.thread_variable_get(:foo), value }.join end def test_thread_variables assert_equal [], Thread.new { Thread.current.thread_variables }.join.value t = Thread.new { Thread.current.thread_variable_set(:foo, "bar") Thread.current.thread_variables } assert_equal [:foo], t.join.value end def test_thread_variable? assert_not Thread.new { Thread.current.thread_variable?("foo") }.join.value t = Thread.new { Thread.current.thread_variable_set("foo", "bar") }.join assert t.thread_variable?("foo") assert t.thread_variable?(:foo) assert_not t.thread_variable?(:bar) end def test_thread_variable_strings_and_symbols_are_the_same_key t = Thread.new {}.join t.thread_variable_set("foo", "bar") assert_equal "bar", t.thread_variable_get(:foo) end def test_thread_variable_frozen t = Thread.new { }.join t.freeze assert_raises(RuntimeError) do t.thread_variable_set(:foo, "bar") end end def test_thread_variable_frozen_after_set t = Thread.new { }.join t.thread_variable_set :foo, "bar" t.freeze assert_raises(RuntimeError) do t.thread_variable_set(:baz, "qux") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activejob-lock-0.0.2 | rails/activesupport/test/core_ext/thread_test.rb |
activejob-lock-0.0.1 | rails/activesupport/test/core_ext/thread_test.rb |