diff options
-rw-r--r-- | tests/libsample/modifications.h | 4 | ||||
-rw-r--r-- | tests/samplebinding/modifications_test.py | 4 | ||||
-rw-r--r-- | tests/samplebinding/typesystem_sample.xml | 6 |
3 files changed, 14 insertions, 0 deletions
diff --git a/tests/libsample/modifications.h b/tests/libsample/modifications.h index 2acffa406..f17261473 100644 --- a/tests/libsample/modifications.h +++ b/tests/libsample/modifications.h @@ -26,6 +26,7 @@ #include "libsamplemacros.h" #include <utility> #include "point.h" +#include "oddbool.h" class ObjectType; @@ -109,6 +110,9 @@ public: bool nonConversionRuleForArgumentWithDefaultValue(ObjectType** object = 0); ObjectType* getObject() const { return m_object; } + // Inject code with a %CONVERTTOPYTHON that receives an user's primitive type. + static inline OddBool passOddBool(OddBool ob) { return ob; } + private: ObjectType* m_object; }; diff --git a/tests/samplebinding/modifications_test.py b/tests/samplebinding/modifications_test.py index 3cb502ce6..bc7b38dfa 100644 --- a/tests/samplebinding/modifications_test.py +++ b/tests/samplebinding/modifications_test.py @@ -154,5 +154,9 @@ class ModificationsTest(unittest.TestCase): self.assertEqual(obj, self.mods.getObject()) self.assertEqual(obj.objectName(), 'MyObject') + def testInjectCodeWithConversionVariableForUserPrimitive(self): + self.assertTrue(Modifications.invertBoolean(False)) + self.assertFalse(Modifications.invertBoolean(True)) + if __name__ == '__main__': unittest.main() diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml index 0209aedd4..56ef0d6cf 100644 --- a/tests/samplebinding/typesystem_sample.xml +++ b/tests/samplebinding/typesystem_sample.xml @@ -742,6 +742,12 @@ %PYARG_0 = Shiboken::makeTuple(%0, tmpObject); </inject-code> </modify-function> + <modify-function signature="passOddBool(OddBool)" rename="invertBoolean"> + <inject-code class="target" position="beginning"> + %RETURN_TYPE %0 = !%CPPSELF.%FUNCTION_NAME(%1); + %PYARG_0 = %CONVERTTOPYTHON[OddBool](%0); + </inject-code> + </modify-function> </object-type> <object-type name="AbstractModifications"> |