mirror of https://github.com/swig/swig
Improve Python static member variable testing
Double check the values are being set in the C++ layer via a function call to C++ layer.
This commit is contained in:
parent
b2365f119e
commit
2bb5eeef91
|
@ -10,6 +10,7 @@ Tests Sourceforge bug #444748.
|
|||
class StaticMemberTest {
|
||||
public:
|
||||
static int static_int;
|
||||
static int grab_int() { return static_int; }
|
||||
};
|
||||
|
||||
class StaticFunctionTest {
|
||||
|
@ -28,10 +29,12 @@ int StaticMemberTest::static_int = 99;
|
|||
%inline %{
|
||||
struct StaticBase {
|
||||
static int statty;
|
||||
static int grab_statty_base() { return statty; }
|
||||
virtual ~StaticBase() {}
|
||||
};
|
||||
struct StaticDerived : StaticBase {
|
||||
static int statty;
|
||||
static int grab_statty_derived() { return statty; }
|
||||
};
|
||||
%}
|
||||
|
||||
|
|
|
@ -8,15 +8,21 @@ StaticFunctionTest.static_func_3(1, 2)
|
|||
|
||||
if is_python_builtin():
|
||||
if not StaticMemberTest.static_int == 99: raise RuntimeError("static_int not 99")
|
||||
if not StaticMemberTest.grab_int() == 99: raise RuntimeError("static_int not 99")
|
||||
StaticMemberTest.static_int = 10
|
||||
if not StaticMemberTest.static_int == 10: raise RuntimeError("static_int not 10")
|
||||
if not StaticMemberTest.grab_int() == 10: raise RuntimeError("static_int not 10")
|
||||
|
||||
if not StaticBase.statty == 11: raise RuntimeError("statty not 11")
|
||||
if not StaticBase.grab_statty_base() == 11: raise RuntimeError("statty not 11")
|
||||
if not StaticDerived.statty == 111: raise RuntimeError("statty not 111")
|
||||
if not StaticDerived.grab_statty_derived() == 111: raise RuntimeError("statty not 111")
|
||||
StaticBase.statty = 22
|
||||
StaticDerived.statty = 222
|
||||
if not StaticBase.statty == 22: raise RuntimeError("statty not 22")
|
||||
if not StaticBase.grab_statty_base() == 22: raise RuntimeError("statty not 22")
|
||||
if not StaticDerived.statty == 222: raise RuntimeError("statty not 222")
|
||||
if not StaticDerived.grab_statty_derived() == 222: raise RuntimeError("statty not 222")
|
||||
|
||||
# Restore
|
||||
StaticMemberTest.static_int = 99
|
||||
|
@ -24,12 +30,18 @@ if is_python_builtin():
|
|||
StaticDerived.statty = 111
|
||||
|
||||
if not cvar.StaticMemberTest_static_int == 99: raise RuntimeError("cvar static_int not 99")
|
||||
if not StaticMemberTest.grab_int() == 99: raise RuntimeError("cvar static_int not 99")
|
||||
cvar.StaticMemberTest_static_int = 10
|
||||
if not cvar.StaticMemberTest_static_int == 10: raise RuntimeError("cvar static_int not 10")
|
||||
if not StaticMemberTest.grab_int() == 10: raise RuntimeError("cvar static_int not 10")
|
||||
|
||||
if not cvar.StaticBase_statty == 11: raise RuntimeError("cvar statty not 11")
|
||||
if not StaticBase.grab_statty_base() == 11: raise RuntimeError("cvar statty not 11")
|
||||
if not cvar.StaticDerived_statty == 111: raise RuntimeError("cvar statty not 111")
|
||||
if not StaticDerived.grab_statty_derived() == 111: raise RuntimeError("cvar statty not 111")
|
||||
cvar.StaticBase_statty = 22
|
||||
cvar.StaticDerived_statty = 222
|
||||
if not cvar.StaticBase_statty == 22: raise RuntimeError("cvar statty not 22")
|
||||
if not StaticBase.grab_statty_base() == 22: raise RuntimeError("cvar statty not 22")
|
||||
if not cvar.StaticDerived_statty == 222: raise RuntimeError("cvar statty not 222")
|
||||
if not StaticDerived.grab_statty_derived() == 222: raise RuntimeError("cvar statty not 222")
|
||||
|
|
Loading…
Reference in New Issue