summary refs log tree commit
path: root/tests/test_json_generate.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_json_generate.rb')
-rwxr-xr-xtests/test_json_generate.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/test_json_generate.rb b/tests/test_json_generate.rb
index 9b0cff4..bc4e395 100755
--- a/tests/test_json_generate.rb
+++ b/tests/test_json_generate.rb
@@ -177,4 +177,17 @@ EOT
     assert_raises(JSON::NestingError) { ary.to_json(s) }
     assert_equal 19, s.depth
   end
+
+  def test_gc
+    bignum_too_long_to_embed_as_string = 1234567890123456789012345
+    expect = bignum_too_long_to_embed_as_string.to_s
+    stress, GC.stress = GC.stress, true
+
+    10.times do |i|
+      tmp = bignum_too_long_to_embed_as_string.to_json
+      assert_equal expect, tmp
+    end
+    ensure
+      GC.stress = stress
+  end if GC.respond_to?(:stress=)
 end