summaryrefslogtreecommitdiff
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.rb34
1 files changed, 18 insertions, 16 deletions
diff --git a/tests/test_json_generate.rb b/tests/test_json_generate.rb
index b363de1..3a1ddc6 100755
--- a/tests/test_json_generate.rb
+++ b/tests/test_json_generate.rb
@@ -227,23 +227,25 @@ EOT
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
+ if defined?(JSON::Ext::Generator)
+ 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
- begin
- JSON::Ext::Generator::State.new.generate(1<<64)
- exit 1
- rescue TypeError
- exit 0
- 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
- _, 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 if defined?(JSON::Ext)
+ end
end