mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[ruby/ostruct] Add test that frozen OpenStructs are Ractor-shareable
This commit is contained in:
parent
083fa6e5d2
commit
0977040133
Notes:
git
2020-10-01 07:11:51 +09:00
2 changed files with 13 additions and 0 deletions
|
@ -62,6 +62,8 @@
|
|||
# first_pet # => #<OpenStruct name="Rowdy">
|
||||
# first_pet == second_pet # => true
|
||||
#
|
||||
# Ractor compatibility: A frozen OpenStruct with shareable values is itself shareable.
|
||||
#
|
||||
# == Caveats
|
||||
#
|
||||
# An OpenStruct utilizes Ruby's method lookup structure to find and define the
|
||||
|
|
|
@ -298,4 +298,15 @@ class TC_OpenStruct < Test::Unit::TestCase
|
|||
o.foo = 42
|
||||
assert_equal 42, o.foo
|
||||
end
|
||||
|
||||
def test_ractor
|
||||
obj1 = OpenStruct.new(a: 42, b: 42)
|
||||
obj1.c = 42
|
||||
obj1.freeze
|
||||
|
||||
obj2 = Ractor.new obj1 do |obj|
|
||||
obj
|
||||
end.take
|
||||
assert obj1.object_id == obj2.object_id
|
||||
end if defined?(Ractor)
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue