| from smart_pointer_const_overload import * |
| |
| CONST_ACCESS = 1 |
| MUTABLE_ACCESS = 2 |
| |
| |
| def test(b, f): |
| if f.x != 0: |
| raise RuntimeError |
| |
| # Test member variable get |
| if b.x != 0: |
| raise RuntimeError |
| |
| if f.access != CONST_ACCESS: |
| raise RuntimeError |
| |
| # Test member variable set |
| b.x = 1 |
| |
| if f.x != 1: |
| raise RuntimeError |
| |
| if f.access != MUTABLE_ACCESS: |
| raise RuntimeError |
| |
| # Test const method |
| if b.getx() != 1: |
| raise RuntimeError |
| |
| if f.access != CONST_ACCESS: |
| raise RuntimeError |
| |
| # Test mutable method |
| b.setx(2) |
| |
| if f.x != 2: |
| raise RuntimeError |
| |
| if f.access != MUTABLE_ACCESS: |
| raise RuntimeError |
| |
| # Test extended const method |
| if b.getx2() != 2: |
| raise RuntimeError |
| |
| if f.access != CONST_ACCESS: |
| raise RuntimeError |
| |
| # Test extended mutable method |
| b.setx2(3) |
| |
| if f.x != 3: |
| raise RuntimeError |
| |
| if f.access != MUTABLE_ACCESS: |
| raise RuntimeError |
| |
| # Test static method |
| b.statMethod() |
| |
| if f.access != CONST_ACCESS: |
| raise RuntimeError |
| |
| # Test const member |
| f.access = MUTABLE_ACCESS |
| |
| if b.y != 0: |
| raise RuntimeError |
| |
| if f.access != CONST_ACCESS: |
| raise RuntimeError |
| |
| # Test get through mutable pointer to const member |
| f.access = MUTABLE_ACCESS |
| |
| if get_int(b.yp) != 0: |
| raise RuntimeError |
| |
| if f.access != CONST_ACCESS: |
| raise RuntimeError |
| |
| # Test get through const pointer to mutable member |
| f.x = 4 |
| f.access = MUTABLE_ACCESS |
| |
| if get_int(b.xp) != 4: |
| raise RuntimeError |
| |
| if f.access != CONST_ACCESS: |
| raise RuntimeError |
| |
| # Test set through const pointer to mutable member |
| f.access = MUTABLE_ACCESS |
| set_int(b.xp, 5) |
| |
| if f.x != 5: |
| raise RuntimeError |
| |
| if f.access != CONST_ACCESS: |
| raise RuntimeError |
| |
| # Test set pointer to const member |
| b.yp = new_int(6) |
| |
| if f.y != 0: |
| raise RuntimeError |
| |
| if get_int(f.yp) != 6: |
| raise RuntimeError |
| |
| if f.access != MUTABLE_ACCESS: |
| raise RuntimeError |
| |
| delete_int(f.yp) |
| |
| f = Foo() |
| b = Bar(f) |
| |
| f2 = Foo() |
| b2 = Bar2(f2) |
| |
| test(b, f) |
| test(b2, f2) |