aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/tests
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-11-06 12:59:25 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-11-06 13:26:37 +0100
commit06e4edac7133d322fe3398502396e1cd8afd8329 (patch)
treeba4427a92c4f1eac1963a428a03edf2c0cea4248 /sources/shiboken2/tests
parentf2063ee4737f90c5d412a9a328672fde32b033eb (diff)
parent764498b3d033a1c947a40dc1b2237e81b674992b (diff)
Merge remote-tracking branch 'origin/5.6' into 5.9
Diffstat (limited to 'sources/shiboken2/tests')
-rw-r--r--sources/shiboken2/tests/libsample/voidholder.h4
-rw-r--r--sources/shiboken2/tests/samplebinding/typesystem_sample.xml12
-rw-r--r--sources/shiboken2/tests/samplebinding/voidholder_test.py20
3 files changed, 15 insertions, 21 deletions
diff --git a/sources/shiboken2/tests/libsample/voidholder.h b/sources/shiboken2/tests/libsample/voidholder.h
index 228bbae3f..6453ce2e7 100644
--- a/sources/shiboken2/tests/libsample/voidholder.h
+++ b/sources/shiboken2/tests/libsample/voidholder.h
@@ -42,6 +42,10 @@ public:
static void* pointerToSomething = new VoidHolder();
return pointerToSomething;
}
+ void *takeVoidPointer(void *item)
+ {
+ return item;
+ }
private:
void* m_ptr;
};
diff --git a/sources/shiboken2/tests/samplebinding/typesystem_sample.xml b/sources/shiboken2/tests/samplebinding/typesystem_sample.xml
index e0085abbe..e6ef28f66 100644
--- a/sources/shiboken2/tests/samplebinding/typesystem_sample.xml
+++ b/sources/shiboken2/tests/samplebinding/typesystem_sample.xml
@@ -2245,17 +2245,7 @@
</modify-function>
</value-type>
- <value-type name="VoidHolder">
- <modify-function signature="gimmeMeSomeVoidPointer()">
- <modify-argument index="return">
- <replace-type modified-type="PyObject*"/>
- </modify-argument>
- <inject-code class="target" position="end">
- %RETURN_TYPE %0 = %TYPE::%FUNCTION_NAME();
- %PYARG_0 = Shiboken::Object::newObject(&amp;SbkObject_Type, %0, false, false);
- </inject-code>
- </modify-function>
- </value-type>
+ <value-type name="VoidHolder" />
<object-type name="PrivateCtor" />
<object-type name="PrivateDtor" />
diff --git a/sources/shiboken2/tests/samplebinding/voidholder_test.py b/sources/shiboken2/tests/samplebinding/voidholder_test.py
index cb5cab6e5..6e841684b 100644
--- a/sources/shiboken2/tests/samplebinding/voidholder_test.py
+++ b/sources/shiboken2/tests/samplebinding/voidholder_test.py
@@ -34,21 +34,29 @@
import unittest
from sample import VoidHolder, Point
+import shiboken2 as shiboken
class VoidHolderTest(unittest.TestCase):
'''Test case for void pointer manipulation.'''
def testGetVoidPointerFromCppAndPutsOnVoidHolder(self):
- '''Passes a void pointer created in C++ and to kept by VoidHolder.'''
+ '''Passes a void pointer created in C++ to be kept by VoidHolder.'''
voidptr = VoidHolder.gimmeMeSomeVoidPointer()
voidholder = VoidHolder(voidptr)
self.assertEqual(voidptr, voidholder.voidPointer())
+ def testPassVoidPointerAsArgument(self):
+ '''Passes a void pointer created in C++ as an argument to a function.'''
+ voidptr = VoidHolder.gimmeMeSomeVoidPointer()
+ voidHolder = VoidHolder()
+ returnValue = voidHolder.takeVoidPointer(voidptr)
+ self.assertEqual(returnValue, voidptr)
+
def testPutRandomObjectInsideVoidHolder(self):
'''Passes a C++ pointer for an object created in Python to be kept by VoidHolder.'''
obj = Point(1, 2)
voidholder = VoidHolder(obj)
- self.assertEqual(obj, voidholder.voidPointer())
+ self.assertEqual(shiboken.getCppPointer(obj)[0], int(voidholder.voidPointer()))
def testGetNoneObjectFromVoidHolder(self):
'''A VoidHolder created without parameters returns a NULL pointer
@@ -56,14 +64,6 @@ class VoidHolderTest(unittest.TestCase):
voidholder = VoidHolder()
self.assertEqual(voidholder.voidPointer(), None)
- def testPutPythonObjectInsideVoidHolder(self):
- '''Passes a native Python object to be kept by VoidHolder.'''
- obj = 'Foo'
- voidholder = VoidHolder(obj)
- self.assertEqual(obj, voidholder.voidPointer())
-
-
-
if __name__ == '__main__':
unittest.main()