scilab: fix allprotected test

This commit is contained in:
Simon Marchetto 2014-09-26 17:23:41 +02:00
commit 78360b4d1b
2 changed files with 51 additions and 31 deletions

View file

@ -8,6 +8,11 @@
%include "std_string.i"
#ifdef SWIGSCILAB
%rename(ProcBase) ProtectedBase;
%rename(PubBase) PublicBase;
#endif
%feature("director") PublicBase;
%feature("director") ProtectedBase;

View file

@ -1,55 +1,70 @@
exec("swigtest.start", -1);
// Class Klass
// Class Klass
try
klass = new_Klass("allprotected_klass");
klass = new_Klass("allprotected_klass")
catch
swigtesterror();
swigtesterror(lasterror());
end
if Klass_getName(klass) <> "allprotected_klass" then swigtesterror(); end
checkequal(Klass_getName(klass), "allprotected_klass", "Klass_getName(new_Klass(""allprotected_klass""))");
// Class PublicBase
// Class PubBase
try
publicBase = new_PublicBase("allprotected_publicbase");
pubBase = new_PubBase("allprotected_PubBase");
catch
swigtesterror();
swigtesterror(lasterror());
end
if PublicBase_virtualMethod(publicBase) <> "PublicBase" then swigtesterror(); end
if Klass_getName(PublicBase_instanceMethod(publicBase, klass)) <> "allprotected_klass" then swigtesterror(); end
if Klass_getName(PublicBase_instanceOverloaded(publicBase, klass)) <> "allprotected_klass" then swigtesterror(); end
if Klass_getName(PublicBase_instanceOverloaded(publicBase, klass, "allprotected_klass2")) <> "allprotected_klass2" then swigtesterror(); end
if Klass_getName(PublicBase_staticMethod(klass)) <> "allprotected_klass" then swigtesterror(); end
if Klass_getName(PublicBase_staticOverloaded(klass)) <> "allprotected_klass" then swigtesterror(); end
if Klass_getName(PublicBase_staticOverloaded(klass, "allprotected_klass3")) <> "allprotected_klass3" then swigtesterror(); end
if PublicBase_EnumVal1_get() <> 0 then swigtesterror(); end
if PublicBase_EnumVal2_get() <> 1 then swigtesterror(); end
checkequal(PubBase_virtualMethod(pubBase), "PublicBase", "PubBase_virtualMethod(pubBase)");
class = PubBase_instanceMethod(pubBase, klass);
checkequal(Klass_getName(class), "allprotected_klass", "Klass_getName(PubBase_instanceMethod(pubBase, klass))");
class = PubBase_instanceOverloaded(pubBase, klass);
checkequal(Klass_getName(class), "allprotected_klass", "Klass_getName(PubBase_instanceOverloaded(pubBase, klass))");
class = PubBase_instanceOverloaded(pubBase, klass, "allprotected_klass2");
checkequal(Klass_getName(class), "allprotected_klass2", "Klass_getName(PubBase_instanceOverloaded(pubBase, klass, ""allprotected_klass2""))");
class = PubBase_staticMethod(klass);
checkequal(Klass_getName(class), "allprotected_klass", "Klass_getName(PubBase_staticMethod(klass))");
class = PubBase_staticOverloaded(klass);
checkequal(Klass_getName(class), "allprotected_klass", "Klass_getName(PubBase_staticOverloaded(klass))");
class = PubBase_staticOverloaded(klass, "allprotected_klass3");
checkequal(Klass_getName(class), "allprotected_klass3", "Klass_getName(PubBase_staticOverloaded(klass, ""allprotected_klass3""))");
checkequal(PubBase_EnumVal1_get(), 0, "PubBase_EnumVal1_get()");
checkequal(PubBase_EnumVal2_get(), 1, "(PubBase_EnumVal2_get()");
PubBase_instanceMemb_set(pubBase, 12);
checkequal(PubBase_instanceMemb_get(pubBase), 12, "PubBase_instanceMemb_get(pubBase)");
checkequal(PubBase_staticConstM_get(), 20, "PubBase_staticConstM_get()");
checkequal(PubBase_staticMember_get(), 10, "PubBase_staticMember_get()")
PubBase_stringMember_set(pubBase, "dummy");
checkequal(PubBase_stringMember_get(pubBase), "dummy", "PubBase_stringMember_get()");
// TODO does not work (wrong ENUM mapping?)
//PublicBase_anEnum_get(publicBase)
//PublicBase_anEnum_set(publicBase, ???)
//PubBase_anEnum_get(PubBase)
//PubBase_anEnum_set(PubBase, ???)
// TODO Can not be tested in Sciolab because too long identifiers
//PublicBase_instanceMemberVariabl
//PublicBase_instanceMemberVariabl
//PublicBase_staticConstMemberVari
//PublicBase_staticMemberVariable_
//PublicBase_staticMemberVariable_
//PublicBase_stringMember_get
//PublicBase_stringMember_set
// Class ProtectedBase
// Class ProcBase
try
// Constructor is propected and must not be defined here
protectedBase = new_ProtectedBase("allprotected_protectedbase");
ProcBase = new_ProctectedBase("allprotected_ProcBase");
swigtesterror();
catch
end
if ProtectedBase_EnumVal1_get() <> 0 then swigtesterror(); end
if ProtectedBase_EnumVal2_get() <> 1 then swigtesterror(); end
checkequal(ProcBase_EnumVal1_get(), 0, "ProcBase_EnumVal1_get()");
checkequal(ProcBase_EnumVal2_get(), 1, "ProcBase_EnumVal2_get()");
try
delete_Klass(klass);
@ -57,7 +72,7 @@ catch
swigtesterror();
end
try
delete_PublicBase(publicBase);
delete_PubBase(pubBase);
catch
swigtesterror();
end