ruby/test/fiddle/test_pinned.rb
Nobuyoshi Nakada bbd5b8ddae
[ruby/fiddle] Ractor support
(https://github.com/ruby/fiddle/pull/139)

91d0ea9849

Co-authored-by: Sutou Kouhei <kou@clear-code.com>
2024-10-16 11:24:25 +09:00

34 lines
739 B
Ruby

# frozen_string_literal: true
begin
require_relative 'helper'
rescue LoadError
return
end
module Fiddle
class TestPinned < Fiddle::TestCase
def test_pin_object
x = Object.new
pinner = Pinned.new x
assert_same x, pinner.ref
end
def test_clear
pinner = Pinned.new Object.new
refute pinner.cleared?
pinner.clear
assert pinner.cleared?
ex = assert_raise(Fiddle::ClearedReferenceError) do
pinner.ref
end
assert_match "called on", ex.message
end
def test_ractor_shareable
omit("Need Ractor") unless defined?(Ractor)
obj = Object.new
assert_ractor_shareable(Pinned.new(obj))
assert_predicate(obj, :frozen?)
end
end
end