summaryrefslogtreecommitdiff
path: root/test/fiddle/test_c_struct_builder.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/fiddle/test_c_struct_builder.rb')
-rw-r--r--test/fiddle/test_c_struct_builder.rb69
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)