mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	When you change this to true, you may need to add more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			782 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			782 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: false
 | 
						|
require "test/unit"
 | 
						|
require "bigdecimal"
 | 
						|
 | 
						|
module TestBigDecimalBase
 | 
						|
  def setup
 | 
						|
    @mode = BigDecimal.mode(BigDecimal::EXCEPTION_ALL)
 | 
						|
    BigDecimal.mode(BigDecimal::EXCEPTION_ALL, true)
 | 
						|
    BigDecimal.mode(BigDecimal::EXCEPTION_UNDERFLOW, true)
 | 
						|
    BigDecimal.mode(BigDecimal::EXCEPTION_OVERFLOW, true)
 | 
						|
    BigDecimal.mode(BigDecimal::ROUND_MODE, BigDecimal::ROUND_HALF_UP)
 | 
						|
    BigDecimal.limit(0)
 | 
						|
  end
 | 
						|
 | 
						|
  def teardown
 | 
						|
    [BigDecimal::EXCEPTION_INFINITY, BigDecimal::EXCEPTION_NaN,
 | 
						|
     BigDecimal::EXCEPTION_UNDERFLOW, BigDecimal::EXCEPTION_OVERFLOW].each do |mode|
 | 
						|
      BigDecimal.mode(mode, !(@mode & mode).zero?)
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def under_gc_stress
 | 
						|
    stress, GC.stress = GC.stress, true
 | 
						|
    yield
 | 
						|
  ensure
 | 
						|
    GC.stress = stress
 | 
						|
  end
 | 
						|
end
 |