[pypy-svn] r52529 - in pypy/dist/pypy/lib: _ctypes app_test/ctypes

pedronis at codespeak.net pedronis at codespeak.net
Fri Mar 14 19:17:51 CET 2008


Author: pedronis
Date: Fri Mar 14 19:17:50 2008
New Revision: 52529

Modified:
   pypy/dist/pypy/lib/_ctypes/union.py
   pypy/dist/pypy/lib/app_test/ctypes/test_functions.py
Log:
make the test pass



Modified: pypy/dist/pypy/lib/_ctypes/union.py
==============================================================================
--- pypy/dist/pypy/lib/_ctypes/union.py	(original)
+++ pypy/dist/pypy/lib/_ctypes/union.py	Fri Mar 14 19:17:50 2008
@@ -66,20 +66,20 @@
             _set_shape(self)
         _CDataMeta.__setattr__(self, name, value)
 
-    #def _CData_output(self, resarray, base=None, index=-1):
-    #    res = self.__new__(self)
-    #    ffistruct = self._ffiopaque.fromaddress(resarray.buffer)
-    #    res.__dict__['_buffer'] = ffistruct
-    #    res.__dict__['_base'] = base
-    #    res.__dict__['_index'] = index
-    #    return res.__ctypes_from_outparam__()
+    def _CData_output(self, resarray, base=None, index=-1):
+        res = self.__new__(self)
+        ffiopaque = self._ffiopaque.fromaddress(resarray.buffer)
+        res.__dict__['_buffer'] = ffiopaque
+        res.__dict__['_base'] = base
+        res.__dict__['_index'] = index
+        return res.__ctypes_from_outparam__()
     
-    #def _CData_retval(self, resbuffer):
-    #    res = self.__new__(self)
-    #    res.__dict__['_buffer'] = resbuffer
-    #    res.__dict__['_base'] = None
-    #    res.__dict__['_index'] = -1
-    #    return res.__ctypes_from_outparam__()
+    def _CData_retval(self, resbuffer):
+        res = self.__new__(self)
+        res.__dict__['_buffer'] = resbuffer
+        res.__dict__['_base'] = None
+        res.__dict__['_index'] = -1
+        return res.__ctypes_from_outparam__()
 
 
 class Union(_CData):

Modified: pypy/dist/pypy/lib/app_test/ctypes/test_functions.py
==============================================================================
--- pypy/dist/pypy/lib/app_test/ctypes/test_functions.py	(original)
+++ pypy/dist/pypy/lib/app_test/ctypes/test_functions.py	Fri Mar 14 19:17:50 2008
@@ -404,7 +404,6 @@
         raises(ArgumentError, lambda: callback((1, 2, 3, 4), POINT()))
 
     def test_union_as_passed_value(self):
-        py.test.skip("WIP")
         class UN(Union):
             _fields_ = [("x", c_short),
                         ("y", c_long)]



More information about the Pypy-commit mailing list