Added test case just to check a few things with protected/private virtual methods
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5515 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
86ee04e48d
commit
f92e4b1c6c
3 changed files with 36 additions and 0 deletions
29
SWIG/Examples/test-suite/abstract_access.i
Normal file
29
SWIG/Examples/test-suite/abstract_access.i
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
%module abstract_access
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
class A {
|
||||||
|
private:
|
||||||
|
virtual int x() = 0;
|
||||||
|
protected:
|
||||||
|
virtual int y() = 0;
|
||||||
|
public:
|
||||||
|
virtual int z() = 0;
|
||||||
|
int do_x() { return x(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
class B : public A {
|
||||||
|
private:
|
||||||
|
virtual int x() { return y(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
class C : public B {
|
||||||
|
protected:
|
||||||
|
virtual int y() { return z(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
class D : public C {
|
||||||
|
private:
|
||||||
|
virtual int z() { return 1; }
|
||||||
|
};
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
@ -61,6 +61,7 @@ C_TEST_BROKEN +=
|
||||||
|
|
||||||
# C++ test cases. (Can be run individually using make testcase.cpptest.)
|
# C++ test cases. (Can be run individually using make testcase.cpptest.)
|
||||||
CPP_TEST_CASES += \
|
CPP_TEST_CASES += \
|
||||||
|
abstract_access \
|
||||||
abstract_inherit \
|
abstract_inherit \
|
||||||
abstract_inherit_ok \
|
abstract_inherit_ok \
|
||||||
abstract_signature \
|
abstract_signature \
|
||||||
|
|
|
||||||
6
SWIG/Examples/test-suite/python/abstract_access_runme.py
Normal file
6
SWIG/Examples/test-suite/python/abstract_access_runme.py
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
import abstract_access
|
||||||
|
|
||||||
|
d = abstract_access.D()
|
||||||
|
if d.do_x() != 1:
|
||||||
|
raise RuntimeError
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue