Add shared_ptr typecheck typemaps for Python and add overloaded method tests for shared_ptr
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10251 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
9029bae5e0
commit
444f643c4e
3 changed files with 93 additions and 20 deletions
|
|
@ -219,6 +219,33 @@ const SwigBoost::shared_ptr<Klass>& ref_1() {
|
|||
return sptr;
|
||||
}
|
||||
|
||||
// overloading tests
|
||||
std::string overload_rawbyval(int i) { return "int"; }
|
||||
std::string overload_rawbyval(Klass k) { return "rawbyval"; }
|
||||
|
||||
std::string overload_rawbyref(int i) { return "int"; }
|
||||
std::string overload_rawbyref(Klass &k) { return "rawbyref"; }
|
||||
|
||||
std::string overload_rawbyptr(int i) { return "int"; }
|
||||
std::string overload_rawbyptr(Klass *k) { return "rawbyptr"; }
|
||||
|
||||
std::string overload_rawbyptrref(int i) { return "int"; }
|
||||
std::string overload_rawbyptrref(Klass *&k) { return "rawbyptrref"; }
|
||||
|
||||
|
||||
|
||||
std::string overload_smartbyval(int i) { return "int"; }
|
||||
std::string overload_smartbyval(SwigBoost::shared_ptr<Klass> k) { return "smartbyval"; }
|
||||
|
||||
std::string overload_smartbyref(int i) { return "int"; }
|
||||
std::string overload_smartbyref(SwigBoost::shared_ptr<Klass> &k) { return "smartbyref"; }
|
||||
|
||||
std::string overload_smartbyptr(int i) { return "int"; }
|
||||
std::string overload_smartbyptr(SwigBoost::shared_ptr<Klass> *k) { return "smartbyptr"; }
|
||||
|
||||
std::string overload_smartbyptrref(int i) { return "int"; }
|
||||
std::string overload_smartbyptrref(SwigBoost::shared_ptr<Klass> *&k) { return "smartbyptrref"; }
|
||||
|
||||
} // namespace Space
|
||||
|
||||
%}
|
||||
|
|
|
|||
|
|
@ -277,6 +277,30 @@ class li_boost_shared_ptr_runme:
|
|||
self.verifyCount(1, k)
|
||||
self.verifyCount(1, kret)
|
||||
|
||||
# //////////////////////////////// Overloading tests ////////////////////////////////////////
|
||||
# Base class
|
||||
k = li_boost_shared_ptr.Klass("me oh my")
|
||||
self.verifyValue(li_boost_shared_ptr.overload_rawbyval(k), "rawbyval");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_rawbyref(k), "rawbyref");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_rawbyptr(k), "rawbyptr");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_rawbyptrref(k), "rawbyptrref");
|
||||
|
||||
self.verifyValue(li_boost_shared_ptr.overload_smartbyval(k), "smartbyval");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_smartbyref(k), "smartbyref");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_smartbyptr(k), "smartbyptr");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_smartbyptrref(k), "smartbyptrref");
|
||||
|
||||
# Derived class
|
||||
k = li_boost_shared_ptr.KlassDerived("me oh my")
|
||||
self.verifyValue(li_boost_shared_ptr.overload_rawbyval(k), "rawbyval");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_rawbyref(k), "rawbyref");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_rawbyptr(k), "rawbyptr");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_rawbyptrref(k), "rawbyptrref");
|
||||
|
||||
self.verifyValue(li_boost_shared_ptr.overload_smartbyval(k), "smartbyval");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_smartbyref(k), "smartbyref");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_smartbyptr(k), "smartbyptr");
|
||||
self.verifyValue(li_boost_shared_ptr.overload_smartbyptrref(k), "smartbyptrref");
|
||||
|
||||
def verifyValue(self, expected, got):
|
||||
if (expected != got):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue