aboutsummaryrefslogtreecommitdiffstats
path: root/test/fiddle/test_import.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/fiddle/test_import.rb')
-rw-r--r--test/fiddle/test_import.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/fiddle/test_import.rb b/test/fiddle/test_import.rb
index 778327b4b2..867f6960ee 100644
--- a/test/fiddle/test_import.rb
+++ b/test/fiddle/test_import.rb
@@ -129,6 +129,20 @@ module Fiddle
assert_equal([0,1,2], ary.value)
end
+ def test_struct_array_assignment()
+ instance = Fiddle::Importer.struct(["unsigned int stages[3]"]).malloc
+ instance.stages[0] = 1024
+ instance.stages[1] = 10
+ instance.stages[2] = 100
+ assert_equal 1024, instance.stages[0]
+ assert_equal 10, instance.stages[1]
+ assert_equal 100, instance.stages[2]
+ assert_equal [1024, 10, 100].pack(Fiddle::PackInfo::PACK_MAP[-Fiddle::TYPE_INT] * 3),
+ instance.to_ptr[0, 3 * Fiddle::SIZEOF_INT]
+ assert_raise(IndexError) { instance.stages[-1] = 5 }
+ assert_raise(IndexError) { instance.stages[3] = 5 }
+ end
+
def test_struct()
s = LIBC::MyStruct.malloc()
s.num = [0,1,2,3,4]