Sha256: c57708418a010fc45ad9ea64bce5e7c58ecd9fb5ca62c670b70d0de563920c5e
Contents?: true
Size: 1.58 KB
Versions: 2
Compression:
Stored size: 1.58 KB
Contents
# frozen_string_literal: true require 'introspection_test_helper' require 'gir_ffi' # Global sequence provider. Needed to make unique class names. class Sequence def self.next @seq ||= 0 @seq += + 1 end end module GirFFITestExtensions SAVED_MODULES = {} def save_module(name) return unless Object.const_defined? name puts "Saving #{name} over existing" if SAVED_MODULES.key? name SAVED_MODULES[name] = Object.const_get name Object.send(:remove_const, name) end def restore_module(name) if Object.const_defined? name Object.send(:remove_const, name) end return unless SAVED_MODULES.key? name Object.const_set name, SAVED_MODULES[name] SAVED_MODULES.delete name end def ref_count(object) GObject::Object::Struct.new(object.to_ptr)[:ref_count] end def ref(object) object.ref end def max_for_unsigned_type(type) (1 << (FFI.type_size(type) * 8)) - 1 end def max_for_type(type) (1 << (FFI.type_size(type) * 8 - 1)) - 1 end def min_for_type(type) ~max_for_type(type) end def max_long max_for_type :long end def min_long min_for_type :long end def max_size_t max_for_unsigned_type :size_t end def max_ssize_t # FFI has no :ssize_t, but it's the same number of bits as :size_t max_for_type :size_t end def min_ssize_t min_for_type :size_t end def max_ushort max_for_unsigned_type :ushort end def max_uint max_for_unsigned_type :uint end def max_ulong max_for_unsigned_type :ulong end end Minitest::Test.send :include, GirFFITestExtensions
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gir_ffi-0.9.4 | test/gir_ffi_test_helper.rb |
gir_ffi-0.9.3 | test/gir_ffi_test_helper.rb |