summaryrefslogtreecommitdiff
path: root/test/ruby/test_memory_view.rb
diff options
context:
space:
mode:
authorKenta Murata <mrkn@users.noreply.github.com>2020-11-30 14:53:13 +0900
committerGitHub <noreply@github.com>2020-11-30 14:53:13 +0900
commit73a337e21461469290005f169c05bc1791112d67 (patch)
tree2fd489d7b3c6993b3a818fa7fe305695648d0268 /test/ruby/test_memory_view.rb
parent7e1dbe59759247ae0df26ef3f669009f00e058fd (diff)
Keep references of memory-view-exported objects (#3816)
* memory_view.c: remove a reference in view->obj at rb_memory_view_release * memory_view.c: keep references of memory-view-exported objects * Update common.mk * memory_view.c: Use st_update
Notes
Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
Diffstat (limited to 'test/ruby/test_memory_view.rb')
-rw-r--r--test/ruby/test_memory_view.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/ruby/test_memory_view.rb b/test/ruby/test_memory_view.rb
index 7a5ebb994c..668d738974 100644
--- a/test/ruby/test_memory_view.rb
+++ b/test/ruby/test_memory_view.rb
@@ -197,6 +197,14 @@ class TestMemoryView < Test::Unit::TestCase
assert_equal(expected_result, members)
end
+ def test_ref_count_with_exported_object
+ es = MemoryViewTestUtils::ExportableString.new("ruby")
+ assert_equal(1, MemoryViewTestUtils.ref_count_while_exporting(es, 1))
+ assert_equal(2, MemoryViewTestUtils.ref_count_while_exporting(es, 2))
+ assert_equal(10, MemoryViewTestUtils.ref_count_while_exporting(es, 10))
+ assert_nil(MemoryViewTestUtils.ref_count_while_exporting(es, 0))
+ end
+
def test_rb_memory_view_init_as_byte_array
# ExportableString's memory view is initialized by rb_memory_view_init_as_byte_array
es = MemoryViewTestUtils::ExportableString.new("ruby")