From 28382505b286a404fdf53bb17720f850d8dfdecc Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Tue, 23 Jul 2024 18:27:07 -0400 Subject: Get fixnum_{min,max} from RbConfig::LIMITS when available It's better than guessing based on the pointer size if the implementation provides it directly. --- spec/mspec/lib/mspec/helpers/numeric.rb | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'spec/mspec/lib') diff --git a/spec/mspec/lib/mspec/helpers/numeric.rb b/spec/mspec/lib/mspec/helpers/numeric.rb index 3be3dcdcd1..d877fc9296 100644 --- a/spec/mspec/lib/mspec/helpers/numeric.rb +++ b/spec/mspec/lib/mspec/helpers/numeric.rb @@ -31,7 +31,24 @@ end # specs based on the relationship between values rather than specific # values. if PlatformGuard.standard? or PlatformGuard.implementation? :topaz - if PlatformGuard.c_long_size? 32 + limits_available = begin + require 'rbconfig/sizeof' + defined?(RbConfig::LIMITS.[]) && ['FIXNUM_MAX', 'FIXNUM_MIN'].all? do |key| + Integer === RbConfig::LIMITS[key] + end + rescue LoadError + false + end + + if limits_available + def fixnum_max + RbConfig::LIMITS['FIXNUM_MAX'] + end + + def fixnum_min + RbConfig::LIMITS['FIXNUM_MIN'] + end + elsif PlatformGuard.c_long_size? 32 def fixnum_max (2**30) - 1 end -- cgit v1.2.3