aboutsummaryrefslogtreecommitdiffstats
path: root/tests/samplebinding/virtualdtor_test.py
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-11-24 13:19:53 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-11-24 15:35:46 -0300
commit2c32ffea81cd5acc6502cd9864d5dc4d5f63c64f (patch)
tree007ee0b5a67337ed8a916987c1d30cb9b5d98c9f /tests/samplebinding/virtualdtor_test.py
parent81282d09cd9b03bade993957a9fc2791eda3393e (diff)
Added tests for classes with virtual and non-virtual protected methods,
for virtual protected destructors, and for non-virtual protected methods modified with signature removal, add-function and code injection. Also improved the tests for non-protected virtual destructors.
Diffstat (limited to 'tests/samplebinding/virtualdtor_test.py')
-rwxr-xr-xtests/samplebinding/virtualdtor_test.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/samplebinding/virtualdtor_test.py b/tests/samplebinding/virtualdtor_test.py
index 19d7176f2..877634fe9 100755
--- a/tests/samplebinding/virtualdtor_test.py
+++ b/tests/samplebinding/virtualdtor_test.py
@@ -31,9 +31,16 @@ import unittest
from sample import VirtualDtor
+class ExtendedVirtualDtor(VirtualDtor):
+ def __init__(self):
+ VirtualDtor.__init__(self)
+
class VirtualDtorTest(unittest.TestCase):
'''Test case for virtual destructor.'''
+ def setUp(self):
+ VirtualDtor.resetDtorCounter()
+
def testVirtualDtor(self):
'''Original virtual destructor is being called.'''
dtor_called = VirtualDtor.dtorCalled()
@@ -42,6 +49,23 @@ class VirtualDtorTest(unittest.TestCase):
del vd
self.assertEqual(VirtualDtor.dtorCalled(), dtor_called + i)
+ def testVirtualDtorOnCppCreatedObject(self):
+ '''Original virtual destructor is being called for a C++ created object.'''
+ dtor_called = VirtualDtor.dtorCalled()
+ for i in range(1, 10):
+ vd = VirtualDtor.create()
+ del vd
+ self.assertEqual(VirtualDtor.dtorCalled(), dtor_called + i)
+
+ def testDtorOnDerivedClass(self):
+ '''Original virtual destructor is being called for a derived class.'''
+ dtor_called = ExtendedVirtualDtor.dtorCalled()
+ for i in range(1, 10):
+ evd = ExtendedVirtualDtor()
+ del evd
+ self.assertEqual(ExtendedVirtualDtor.dtorCalled(), dtor_called + i)
+
+
if __name__ == '__main__':
unittest.main()