[macruby-changes] [5160] MacRuby/trunk/spec/macruby/core/pointer_spec.rb
source_changes at macosforge.org
source_changes at macosforge.org
Wed Jan 12 18:13:32 PST 2011
Revision: 5160
http://trac.macosforge.org/projects/ruby/changeset/5160
Author: lsansonetti at apple.com
Date: 2011-01-12 18:13:28 -0800 (Wed, 12 Jan 2011)
Log Message:
-----------
add specs for Pointer.magic_cookie
Modified Paths:
--------------
MacRuby/trunk/spec/macruby/core/pointer_spec.rb
Modified: MacRuby/trunk/spec/macruby/core/pointer_spec.rb
===================================================================
--- MacRuby/trunk/spec/macruby/core/pointer_spec.rb 2011-01-13 02:13:03 UTC (rev 5159)
+++ MacRuby/trunk/spec/macruby/core/pointer_spec.rb 2011-01-13 02:13:28 UTC (rev 5160)
@@ -222,3 +222,28 @@
10.times { |i| ptr3[i].should == i }
end
end
+
+describe "A pointer magic cookie" do
+ before :all do
+ @ptr = Pointer.magic_cookie(42);
+ end
+
+ it "has a type of ^v" do
+ @ptr.type.should == '^v'
+ end
+
+ it "can be passed as a void* argument" do
+ val = NSValue.valueWithPointer(@ptr)
+ ptr = Pointer.new(:long)
+ val.getValue(ptr)
+ ptr[0].should == 42
+ end
+
+ it "cannot be accessed" do
+ lambda { @ptr[0] }.should raise_error(ArgumentError)
+ lambda { @ptr[0]=42 }.should raise_error(ArgumentError)
+ lambda { @ptr.cast!(:float) }.should raise_error(ArgumentError)
+ lambda { @ptr - 1 }.should raise_error(ArgumentError)
+ lambda { @ptr + 1 }.should raise_error(ArgumentError)
+ end
+end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20110112/179e0293/attachment.html>
More information about the macruby-changes
mailing list