summaryrefslogtreecommitdiff
path: root/test/json/test_json_generate.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/json/test_json_generate.rb')
-rwxr-xr-xtest/json/test_json_generate.rb32
1 files changed, 10 insertions, 22 deletions
diff --git a/test/json/test_json_generate.rb b/test/json/test_json_generate.rb
index 1c8f0bc968..5c1042d956 100755
--- a/test/json/test_json_generate.rb
+++ b/test/json/test_json_generate.rb
@@ -3,6 +3,7 @@
require 'test/unit'
require File.join(File.dirname(__FILE__), 'setup_variant')
+require_relative '../ruby/envutil.rb'
class TestJSONGenerate < Test::Unit::TestCase
include JSON
@@ -215,15 +216,14 @@ EOT
end
def test_gc
- require_relative '../ruby/envutil.rb'
- assert_in_out_err(%w[-rjson --disable-gems], <<-EOS, [], [])
+ assert_separately %w[-rjson --disable-gems], <<-EOS, timeout: 5
bignum_too_long_to_embed_as_string = 1234567890123456789012345
expect = bignum_too_long_to_embed_as_string.to_s
GC.stress = true
10.times do |i|
tmp = bignum_too_long_to_embed_as_string.to_json
- raise "'\#{expect}' is expected, but '\#{tmp}'" unless tmp == expect
+ assert_equal expect, tmp
end
EOS
end if GC.respond_to?(:stress=)
@@ -252,27 +252,15 @@ EOT
assert_equal '5', state2.array_nl
end
- 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
+ def test_broken_bignum # [ruby-core:38867]
+ assert_separately %w[-rjson --disable-gems], <<-EOS, timeout: 5
+ Bignum.class_eval do
+ def to_s
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
+ assert_raise(TypeError){ JSON::Ext::Generator::State.new.generate(1<<64) }
+ EOS
+ end if defined?(JSON::Ext::Generator)
def test_hash_likeness_set_symbol
state = JSON.state.new