summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndLLA <44858649+AndLLA@users.noreply.github.com>2022-10-11 20:30:12 +0200
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2022-10-24 18:20:10 +0100
commit0d0e369aaff8e7e3311453c533425dab704fc69a (patch)
treeac8c66d924af915b4fbd014b8979a62fc7abec47
parentb885c22f1110b4d41d296ef593c4233f54d955ca (diff)
downloadswig-0d0e369aaff8e7e3311453c533425dab704fc69a.tar.gz
switched implementation reference from java to python
-rw-r--r--Examples/test-suite/r/li_boost_shared_ptr_runme.R206
1 files changed, 103 insertions, 103 deletions
diff --git a/Examples/test-suite/r/li_boost_shared_ptr_runme.R b/Examples/test-suite/r/li_boost_shared_ptr_runme.R
index cdee3b9ad..6df8984fc 100644
--- a/Examples/test-suite/r/li_boost_shared_ptr_runme.R
+++ b/Examples/test-suite/r/li_boost_shared_ptr_runme.R
@@ -30,6 +30,10 @@ testSuite_verifyCount <- function(expected, k) {
testSuite <- function() {
+ #
+ # Reference Implementation is li_boost_shared_ptr_runme.py
+ #
+
# simple shared_ptr usage - created in C++
{
k = Klass("me oh my")
@@ -106,6 +110,26 @@ testSuite <- function() {
# testSuite_verifyCount(2, kret); # -> use_count not defined on _p_SwigBoost__shared_ptrT_Space__Klass_const_t
}
+ # const pass by shared_ptr pointer
+ {
+ k = Klass("me oh my")
+ kret = constsmartpointerpointertest(k)
+ val = Klass_getValue(kret)
+ unittest("me oh my", val)
+ testSuite_verifyCount(2, k)
+ # testSuite_verifyCount(2, kret) # -> use_count not defined on _p_SwigBoost__shared_ptrT_Space__Klass_const_t
+ }
+
+ # const pass by shared_ptr reference
+ {
+ k = Klass("me oh my")
+ kret = constsmartpointerreftest(k)
+ val = Klass_getValue(kret)
+ unittest("me oh my", val)
+ testSuite_verifyCount(2, k)
+ # testSuite_verifyCount(2, kret) # -> use_count not defined for _p_SwigBoost__shared_ptrT_Space__Klass_const_t
+ }
+
# pass by value
{
k = Klass("me oh my");
@@ -191,6 +215,23 @@ testSuite <- function() {
if (bNotCatched) {
stop("Failed to catch null pointer");
}
+
+ # test null pointers emitted from C++
+
+ k = sp_pointer_null()
+ if (!is.null(k)) {
+ stop("return was not null")
+ }
+
+ k = null_sp_pointer()
+ if (!is.null(k)) {
+ stop("return was not null")
+ }
+
+ k = sp_value_null()
+ if (!is.null(k)) {
+ stop("return was not null")
+ }
}
# $owner
@@ -209,10 +250,10 @@ testSuite <- function() {
}
#
- # ###################### Derived classes ######################
+ # ###################### Derived and base class mixed ######################
#
- # derived pass by shared_ptr
+ # pass by shared_ptr (mixed)
{
k = KlassDerived("me oh my");
kret = derivedsmartptrtest(k);
@@ -220,11 +261,9 @@ testSuite <- function() {
unittest("me oh my derivedsmartptrtest-Derived", val);
testSuite_verifyCount(2, k);
testSuite_verifyCount(2, kret);
- # testSuite_verifyCount(4, k); # includes two extra references for upcasts
- # testSuite_verifyCount(4, kret);
}
- # derived pass by shared_ptr pointer
+ # pass by shared_ptr pointer (mixed)
{
k = KlassDerived("me oh my");
kret = derivedsmartptrpointertest(k);
@@ -232,11 +271,9 @@ testSuite <- function() {
unittest("me oh my derivedsmartptrpointertest-Derived", val);
testSuite_verifyCount(2, k);
testSuite_verifyCount(2, kret);
- # testSuite_verifyCount(4, k); # includes two extra references for upcasts in the proxy classes
- # testSuite_verifyCount(4, kret);
}
- # derived pass by shared_ptr ref
+ # pass by shared_ptr ref (mixed)
{
k = KlassDerived("me oh my");
kret = derivedsmartptrreftest(k);
@@ -244,21 +281,32 @@ testSuite <- function() {
unittest("me oh my derivedsmartptrreftest-Derived", val);
testSuite_verifyCount(2, k);
testSuite_verifyCount(2, kret);
- #testSuite_verifyCount(4, k); # includes two extra references for upcasts in the proxy classes
- #testSuite_verifyCount(4, kret);
}
- # derived pass by shared_ptr pointer ref
+ # pass by shared_ptr pointer reference (mixed)
if (FALSE) {
k = KlassDerived("me oh my");
- kret = derivedsmartptrpointerreftest(k); # undefined class _p_p_SwigBoost__shared_ptrT_Space__KlassDerived_t
+ kret = smartpointerpointerreftest(k); # undefined class _p_p_SwigBoost__shared_ptrT_Space__Klass_t
val = kret$getValue();
unittest("me oh my derivedsmartptrpointerreftest-Derived", val);
- testSuite_verifyCount(4, k); # includes two extra references for upcasts in the proxy classes
- testSuite_verifyCount(4, kret);
+ testSuite_verifyCount(2, k); # includes two extra references for upcasts in the proxy classes
+ testSuite_verifyCount(2, kret);
}
- # derived pass by pointer
+ # pass by value (mixed)
+ {
+ k = KlassDerived("me oh my")
+ kret = valuetest(k)
+ val = kret$getValue()
+ unittest("me oh my valuetest", val) # note slicing
+ testSuite_verifyCount(2, k)
+ # testSuite_verifyCount(2, kret) --> use count not defined for _p_Space__Klass
+
+ # testSuite_verifyCount(1, k) # this is the python expected reference counting
+ # testSuite_verifyCount(1, kret)
+ }
+
+ # pass by pointer (mixed)
{
k = KlassDerived("me oh my");
kret = derivedpointertest(k);
@@ -266,113 +314,69 @@ testSuite <- function() {
unittest("me oh my derivedpointertest-Derived", val);
testSuite_verifyCount(1, k);
# testSuite_verifyCount(1, kret); -> use_count not defined for _p_Space__KlassDerived
-
- # testSuite_verifyCount(2, k); # includes an extra reference for the upcast in the proxy class
- # testSuite_verifyCount(2, kret);
}
- # derived pass by ref
+ # pass by ref (mixed)
{
k = KlassDerived("me oh my");
- kret = derivedreftest(k);
+ kret = reftest(k);
val = kret$getValue();
- unittest("me oh my derivedreftest-Derived", val);
- testSuite_verifyCount(1, k);
- #testSuite_verifyCount(1, kret); --> use_count not defined for _p_Space__KlassDerived
+ unittest("me oh my reftest-Derived", val);
+ testSuite_verifyCount(2, k);
+ #testSuite_verifyCount(2, kret); --> use_count not defined for _p_Space__KlassDerived
- #testSuite_verifyCount(2, k); # includes an extra reference for the upcast in the proxy class
- #testSuite_verifyCount(2, kret);
+ #testSuite_verifyCount(1, k); # --> this is the python expected counting
+ #testSuite_verifyCount(1, kret);
}
-
#
- # ###################### Derived and base class mixed ######################
+ # ################# Overloading tests ##################
#
- # pass by shared_ptr (mixed)
+ # Base class
{
- k = KlassDerived("me oh my");
- kret = smartpointertest(k);
- val = kret$getValue();
- unittest("me oh my smartpointertest-Derived", val);
- testSuite_verifyCount(3, k); # an extra reference for the upcast in the proxy class
- testSuite_verifyCount(3, kret);
- }
+ k = Klass("me oh my");
- # pass by shared_ptr pointer (mixed)
- {
- k = KlassDerived("me oh my");
- kret = smartpointerpointertest(k);
- val = kret$getValue();
- unittest("me oh my smartpointerpointertest-Derived", val);
- testSuite_verifyCount(3, k); # an extra reference for the upcast in the proxy class
- testSuite_verifyCount(3, kret);
- }
+ unittest(overload_rawbyval(k), "rawbyval")
+ unittest(overload_rawbyref(k), "rawbyref")
+ unittest(overload_rawbyptr(k), "rawbyptr")
+ # unittest(overload_rawbyptrref(k), "rawbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__Klass_t
- # pass by shared_ptr reference (mixed)
- {
- k = KlassDerived("me oh my");
- kret = smartpointerreftest(k);
- val = kret$getValue();
- unittest("me oh my smartpointerreftest-Derived", val);
- testSuite_verifyCount(3, k); # an extra reference for the upcast in the proxy class
- testSuite_verifyCount(3, kret);
+ unittest(overload_smartbyval(k), "smartbyval")
+ unittest(overload_smartbyref(k), "smartbyref")
+ unittest(overload_smartbyptr(k), "smartbyptr")
+ # unittest(overload_smartbyptrref(k), "smartbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__Klass_t
}
- # pass by shared_ptr pointer reference (mixed)
- if (FALSE) {
- k = KlassDerived("me oh my");
- kret = smartpointerpointerreftest(k); # -> undefined _p_p_SwigBoost__shared_ptrT_Space__Klass_t
- val = kret$getValue();
- unittest("me oh my smartpointerpointerreftest-Derived", val);
- testSuite_verifyCount(3, k); # an extra reference for the upcast in the proxy class
- testSuite_verifyCount(3, kret);
- }
-
- # pass by value (mixed)
+ # Derived class
{
- k = KlassDerived("me oh my");
- kret = valuetest(k);
- val = kret$getValue();
- unittest("me oh my valuetest", val); # note slicing
- testSuite_verifyCount(2, k); # an extra reference for the upcast in the proxy class
- # testSuite_verifyCount(1, kret); # -> use count undefined for _p_Space__Klass
- }
+ k = KlassDerived("me oh my")
- # pass by pointer (mixed)
- {
- k = KlassDerived("me oh my");
- kret = pointertest(k);
- val = kret$getValue();
- unittest("me oh my pointertest-Derived", val);
- testSuite_verifyCount(2, k); # an extra reference for the upcast in the proxy class
- # testSuite_verifyCount(1, kret); # -> use count undefined for _p_Space__Klass
- }
+ unittest(overload_rawbyval(k), "rawbyval")
+ unittest(overload_rawbyref(k), "rawbyref")
+ unittest(overload_rawbyptr(k), "rawbyptr")
+ # unittest(overload_rawbyptrref(k), "rawbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__KlassDerived_t
- # pass by ref (mixed)
- {
- k = KlassDerived("me oh my");
- kret = reftest(k);
- val = kret$getValue();
- unittest("me oh my reftest-Derived", val);
- testSuite_verifyCount(2, k); # an extra reference for the upcast in the proxy class
- # testSuite_verifyCount(1, kret); # -> use count undefined for _p_Space__Klass
+ unittest(overload_smartbyval(k), "smartbyval")
+ unittest(overload_smartbyref(k), "smartbyref")
+ unittest(overload_smartbyptr(k), "smartbyptr")
+ # unittest(overload_smartbyptrref(k), "smartbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__KlassDerived_t
}
# 3rd derived class
{
- k = Klass3rdDerived("me oh my");
- val = k$getValue();
- unittest("me oh my-3rdDerived", val);
- testSuite_verifyCount(1, k);
- #testSuite_verifyCount(3, k); # 3 classes in inheritance chain == 3 swigCPtr values
+ k = Klass3rdDerived("me oh my")
- val = test3rdupcast(k);
- unittest("me oh my-3rdDerived", val);
- testSuite_verifyCount(2, k);
- #testSuite_verifyCount(3, k);
- }
+ unittest(overload_rawbyval(k), "rawbyval")
+ unittest(overload_rawbyref(k), "rawbyref")
+ unittest(overload_rawbyptr(k), "rawbyptr")
+ # unittest(overload_rawbyptrref(k), "rawbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__Klass3rdDerived_t
+ unittest(overload_smartbyval(k), "smartbyval")
+ unittest(overload_smartbyref(k), "smartbyref")
+ unittest(overload_smartbyptr(k), "smartbyptr")
+ # unittest(overload_smartbyptrref(k), "smartbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__Klass3rdDerived_t
+ }
#
# ################ Member variables ####################
@@ -395,7 +399,7 @@ testSuite <- function() {
testSuite_verifyCount(3, k);
delete_MemberVariables(m)
- testSuite_verifyCount(2, kmember); # these should be -1 wrt to the previous test ?
+ testSuite_verifyCount(2, kmember);
testSuite_verifyCount(2, k);
}
@@ -443,7 +447,7 @@ testSuite <- function() {
testSuite_verifyCount(4, k);
delete_MemberVariables(m);
- testSuite_verifyCount(3, kmemberVal); # should be one less than the previous one
+ testSuite_verifyCount(3, kmemberVal);
testSuite_verifyCount(3, kmember);
testSuite_verifyCount(3, k);
}
@@ -624,10 +628,6 @@ testSuite <- function() {
}
-
-
-
-
#
# ###################### Templates ######################
#