mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	Use assert_separately to inspect test failure of TestJSONGenerate#test_broken_bignum
http://fbsd.rubyci.org/~chkbuild/ruby-trunk/log/20130617T010202Z.log.html.gz#test%2F-ext- git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									0288c4bed1
								
							
						
					
					
						commit
						6a986298a4
					
				
					 1 changed files with 10 additions and 22 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue