summaryrefslogtreecommitdiff
path: root/test/fiddle/test_pinned.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/fiddle/test_pinned.rb')
-rw-r--r--test/fiddle/test_pinned.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/fiddle/test_pinned.rb b/test/fiddle/test_pinned.rb
new file mode 100644
index 0000000000..5bfae2172a
--- /dev/null
+++ b/test/fiddle/test_pinned.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+begin
+ require_relative 'helper'
+rescue LoadError
+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
+ end
+end
+