diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/libsample/modifications.cpp | 6 | ||||
-rw-r--r-- | tests/libsample/modifications.h | 4 | ||||
-rw-r--r-- | tests/samplebinding/modifications_test.py | 5 | ||||
-rw-r--r-- | tests/samplebinding/typesystem_sample.xml | 5 |
4 files changed, 20 insertions, 0 deletions
diff --git a/tests/libsample/modifications.cpp b/tests/libsample/modifications.cpp index 72c3f40ed..739ca5c74 100644 --- a/tests/libsample/modifications.cpp +++ b/tests/libsample/modifications.cpp @@ -103,3 +103,9 @@ Modifications::getSize(const void* data, int size) (void)data; return size; } + +int +Modifications::sumPointCoordinates(const Point* point) +{ + return point->x() + point->y(); +} diff --git a/tests/libsample/modifications.h b/tests/libsample/modifications.h index 1b6fb8240..c7a7748c6 100644 --- a/tests/libsample/modifications.h +++ b/tests/libsample/modifications.h @@ -98,6 +98,10 @@ public: // Replace 'const void*' by 'ByteArray&'. int getSize(const void* data, int size); + + // Mark the argument with a <no-null-pointer/> tag; + // the test implementation must expect point never to be null. + int sumPointCoordinates(const Point* point); }; class LIBSAMPLE_API AbstractModifications : public Modifications diff --git a/tests/samplebinding/modifications_test.py b/tests/samplebinding/modifications_test.py index b37d74635..344801015 100644 --- a/tests/samplebinding/modifications_test.py +++ b/tests/samplebinding/modifications_test.py @@ -143,5 +143,10 @@ class ModificationsTest(unittest.TestCase): self.assertEqual(self.mods.getSize(ba), len(ba)) self.assertEqual(self.mods.getSize(ba, 20), 20) + def testNoNulPointerTag(self): + point = Point(12, 34) + self.assertEqual(self.mods.sumPointCoordinates(point), 12 + 34) + self.assertRaises(TypeError, self.mods.sumPointCoordinates, None) + if __name__ == '__main__': unittest.main() diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml index add18c289..3e910ccc6 100644 --- a/tests/samplebinding/typesystem_sample.xml +++ b/tests/samplebinding/typesystem_sample.xml @@ -714,6 +714,11 @@ %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); </inject-code> </modify-function> + <modify-function signature="sumPointCoordinates(const Point*)"> + <modify-argument index="1"> + <no-null-pointer/> + </modify-argument> + </modify-function> </object-type> <object-type name="AbstractModifications"> |