diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-08-13 11:51:52 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:17:11 -0300 |
commit | 91a2dbd2e84e653ba0e0b36f4c46bfc23014e29b (patch) | |
tree | ecfc92c90ffe3c92282d06444f9cd4e26cdfc269 /tests | |
parent | e5d7ccddfee37eb10e3c594f96bdddb49864c340 (diff) |
Added a method modification test dealing with code injection and user's primitive type.
The inject code has a %CONVERTTOPYTHON that receives an user's primitive type.
Diffstat (limited to 'tests')
-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"> |