diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-11-24 13:19:53 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-11-24 15:35:46 -0300 |
commit | 2c32ffea81cd5acc6502cd9864d5dc4d5f63c64f (patch) | |
tree | 007ee0b5a67337ed8a916987c1d30cb9b5d98c9f /tests/samplebinding/virtualdtor_test.py | |
parent | 81282d09cd9b03bade993957a9fc2791eda3393e (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-x | tests/samplebinding/virtualdtor_test.py | 24 |
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() |