[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