Sha256: 6873ec559b660c4c85e22f6da1bbce42ee5c6f8f6afc636ab76ea6bb851ce49f
Contents?: true
Size: 1.52 KB
Versions: 3
Compression:
Stored size: 1.52 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) Object.send(:remove_const, name) if Object.const_defined? name return unless SAVED_MODULES.key? name Object.const_set name, SAVED_MODULES[name] SAVED_MODULES.delete name end def ref_count(ptr) GObject::Object::Struct.new(ptr)[:ref_count] 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gir_ffi-0.13.0 | test/gir_ffi_test_helper.rb |
gir_ffi-0.12.1 | test/gir_ffi_test_helper.rb |
gir_ffi-0.12.0 | test/gir_ffi_test_helper.rb |