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.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test_json_generate.rb b/tests/test_json_generate.rb
index bc4e395..368a27e 100755
--- a/tests/test_json_generate.rb
+++ b/tests/test_json_generate.rb
@@ -190,4 +190,25 @@ EOT
     ensure
       GC.stress = stress
   end if GC.respond_to?(:stress=)
+
+
+  def test_broken_bignum # [ruby-core:38867]
+    pid = fork do
+      Bignum.class_eval do
+        def to_s
+        end
+      end
+      begin
+        JSON::Ext::Generator::State.new.generate(1<<64)
+        exit 1
+      rescue TypeError
+        exit 0
+      end
+    end
+    _, status = Process.waitpid2(pid)
+    assert status.success?
+    rescue NotImplementedError
+      # forking to avoid modifying core class of a parent process and
+      # introducing race conditions of tests are run in parallel
+  end
 end