diff lua/luadyncall/test/test_smartptr.lua @ 0:0cfcc391201f

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:26:28 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lua/luadyncall/test/test_smartptr.lua	Thu Mar 19 22:26:28 2015 +0100
@@ -0,0 +1,29 @@
+require "smartptr"
+
+-- test tolightuserdata
+
+x = smartptr.tolightuserdata(0xCAFEbabe)
+print(x)
+
+-- test newsmartptr and finalizer
+
+function finalizer(x)
+  print("finalizer:"..tostring(x) )
+end
+
+y = smartptr.new(x, finalizer)
+print("dump smartptr : ".. tostring(y) )
+print("dump address  : " .. tostring(y()))
+y = nil -- should print FINALIZER
+collectgarbage("collect")
+-- test setfinalizer
+
+y = smartptr.new( smartptr.tolightuserdata(0xdeadc0de), finalizer)
+print("smartptr : ".. tostring(y) )
+print("address  : " .. tostring(y()))
+function newfinalizer(x)
+  print("newfinalizer:"..tostring(x))
+end
+smartptr.setfinalizer(y, newfinalizer)
+y = nil
+