diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-11-06 12:59:25 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-11-06 13:26:37 +0100 |
commit | 06e4edac7133d322fe3398502396e1cd8afd8329 (patch) | |
tree | ba4427a92c4f1eac1963a428a03edf2c0cea4248 /sources/shiboken2/tests | |
parent | f2063ee4737f90c5d412a9a328672fde32b033eb (diff) | |
parent | 764498b3d033a1c947a40dc1b2237e81b674992b (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.9
Change-Id: I72583df407fc5b3caa8bf35fd997889a4ac86512
Diffstat (limited to 'sources/shiboken2/tests')
-rw-r--r-- | sources/shiboken2/tests/libsample/voidholder.h | 4 | ||||
-rw-r--r-- | sources/shiboken2/tests/samplebinding/typesystem_sample.xml | 12 | ||||
-rw-r--r-- | sources/shiboken2/tests/samplebinding/voidholder_test.py | 20 |
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(&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() |