diff options
Diffstat (limited to 'test/fiddle/test_c_struct_builder.rb')
| -rw-r--r-- | test/fiddle/test_c_struct_builder.rb | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/test/fiddle/test_c_struct_builder.rb b/test/fiddle/test_c_struct_builder.rb deleted file mode 100644 index ca44c6cf7a..0000000000 --- a/test/fiddle/test_c_struct_builder.rb +++ /dev/null @@ -1,69 +0,0 @@ -# frozen_string_literal: true -begin - require_relative 'helper' - require 'fiddle/struct' - require 'fiddle/cparser' - require 'fiddle/import' -rescue LoadError -end - -module Fiddle - class TestCStructBuilder < TestCase - include Fiddle::CParser - extend Fiddle::Importer - - RBasic = struct ['void * flags', - 'void * klass' ] - - - RObject = struct [ - { 'basic' => RBasic }, - { 'as' => union([ - { 'heap'=> struct([ 'uint32_t numiv', - 'void * ivptr', - 'void * iv_index_tbl' ]) }, - 'void *ary[3]' ])} - ] - - - def test_basic_embedded_members - assert_equal 0, RObject.offsetof("basic.flags") - assert_equal Fiddle::SIZEOF_VOIDP, RObject.offsetof("basic.klass") - end - - def test_embedded_union_members - assert_equal 2 * Fiddle::SIZEOF_VOIDP, RObject.offsetof("as") - assert_equal 2 * Fiddle::SIZEOF_VOIDP, RObject.offsetof("as.heap") - assert_equal 2 * Fiddle::SIZEOF_VOIDP, RObject.offsetof("as.heap.numiv") - assert_equal 3 * Fiddle::SIZEOF_VOIDP, RObject.offsetof("as.heap.ivptr") - assert_equal 4 * Fiddle::SIZEOF_VOIDP, RObject.offsetof("as.heap.iv_index_tbl") - end - - def test_as_ary - assert_equal 2 * Fiddle::SIZEOF_VOIDP, RObject.offsetof("as.ary") - end - - def test_offsetof - types, members = parse_struct_signature(['int64_t i','char c']) - my_struct = Fiddle::CStructBuilder.create(Fiddle::CStruct, types, members) - assert_equal 0, my_struct.offsetof("i") - assert_equal Fiddle::SIZEOF_INT64_T, my_struct.offsetof("c") - end - - def test_offset_with_gap - types, members = parse_struct_signature(['void *p', 'char c', 'long x']) - my_struct = Fiddle::CStructBuilder.create(Fiddle::CStruct, types, members) - - assert_equal PackInfo.align(0, ALIGN_VOIDP), my_struct.offsetof("p") - assert_equal PackInfo.align(SIZEOF_VOIDP, ALIGN_CHAR), my_struct.offsetof("c") - assert_equal SIZEOF_VOIDP + PackInfo.align(SIZEOF_CHAR, ALIGN_LONG), my_struct.offsetof("x") - end - - def test_union_offsetof - types, members = parse_struct_signature(['int64_t i','char c']) - my_struct = Fiddle::CStructBuilder.create(Fiddle::CUnion, types, members) - assert_equal 0, my_struct.offsetof("i") - assert_equal 0, my_struct.offsetof("c") - end - end -end if defined?(Fiddle) |
