R shared_ptr testing

Enable more tests.
Use preferred member variable access.
This commit is contained in:
William S Fulton 2022-10-24 22:44:31 +01:00
commit 1e99e4fe37

View file

@ -284,13 +284,13 @@ testSuite <- function() {
} }
# pass by shared_ptr pointer reference (mixed) # pass by shared_ptr pointer reference (mixed)
if (FALSE) { {
k = KlassDerived("me oh my"); k = KlassDerived("me oh my");
kret = smartpointerpointerreftest(k); kret = smartpointerpointerreftest(k);
val = kret$getValue(); val = kret$getValue();
unittest("me oh my derivedsmartptrpointerreftest-Derived", val); # fails "me oh my derivedsmartptrpointerreftest-Derived != me oh my smartpointerpointerreftest-Derived" unittest("me oh my smartpointerpointerreftest-Derived", val);
testSuite_verifyCount(2, k); # includes two extra references for upcasts in the proxy classes #testSuite_verifyCount(2, k); # includes two extra references for upcasts in the proxy classes
testSuite_verifyCount(2, kret); #testSuite_verifyCount(2, kret);
} }
# pass by value (mixed) # pass by value (mixed)
@ -388,13 +388,13 @@ testSuite <- function() {
{ {
m = MemberVariables(); m = MemberVariables();
k = Klass("smart member value"); k = Klass("smart member value");
MemberVariables_SmartMemberValue_set(self = m, s_SmartMemberValue = k) m$SmartMemberValue = k;
val = k$getValue(); val = k$getValue();
unittest("smart member value", val); unittest("smart member value", val);
testSuite_verifyCount(2, k); testSuite_verifyCount(2, k);
kmember = MemberVariables_SmartMemberPointer_get(self = m) kmember = m$SmartMemberPointer;
val = kmember$getValue(); val = kmember$getValue();
unittest("smart member value", val); unittest("smart member value", val);
testSuite_verifyCount(3, kmember); testSuite_verifyCount(3, kmember);
@ -409,12 +409,12 @@ testSuite <- function() {
{ {
m = MemberVariables(); m = MemberVariables();
k = Klass("smart member pointer"); k = Klass("smart member pointer");
MemberVariables_SmartMemberPointer_set(self = m , s_SmartMemberPointer = k); m$SmartMemberPointer = k;
val = k$getValue(); val = k$getValue();
unittest("smart member pointer", val); unittest("smart member pointer", val);
testSuite_verifyCount(1, k); testSuite_verifyCount(1, k);
kmember = MemberVariables_SmartMemberPointer_get(self = m) kmember = m$SmartMemberPointer;
val = kmember$getValue(); val = kmember$getValue();
unittest("smart member pointer", val); unittest("smart member pointer", val);
testSuite_verifyCount(2, kmember); testSuite_verifyCount(2, kmember);
@ -429,19 +429,19 @@ testSuite <- function() {
{ {
m = MemberVariables(); m = MemberVariables();
k = Klass("smart member reference"); k = Klass("smart member reference");
MemberVariables_SmartMemberReference_set(self = m , s_SmartMemberReference = k); # m$setSmartMemberReference(k); m$SmartMemberReference = k;
val = k$getValue(); val = k$getValue();
unittest("smart member reference", val); unittest("smart member reference", val);
testSuite_verifyCount(2, k); testSuite_verifyCount(2, k);
kmember = MemberVariables_SmartMemberPointer_get(self = m) kmember = m$SmartMemberPointer;
val = kmember$getValue(); val = kmember$getValue();
unittest("smart member reference", val); unittest("smart member reference", val);
testSuite_verifyCount(3, kmember); testSuite_verifyCount(3, kmember);
testSuite_verifyCount(3, k); testSuite_verifyCount(3, k);
# The C++ reference refers to SmartMemberValue... # The C++ reference refers to SmartMemberValue...
kmemberVal = MemberVariables_SmartMemberReference_get(self = m) kmemberVal = m$SmartMemberReference;
val = kmember$getValue(); val = kmember$getValue();
unittest("smart member reference", val); unittest("smart member reference", val);
testSuite_verifyCount(4, kmemberVal); testSuite_verifyCount(4, kmemberVal);
@ -458,12 +458,12 @@ testSuite <- function() {
{ {
m = MemberVariables(); m = MemberVariables();
k = Klass("plain member value"); k = Klass("plain member value");
MemberVariables_MemberValue_set(self = m, s_MemberValue = k); # m$setMemberValue(k); m$MemberValue = k;
val = k$getValue(); val = k$getValue();
unittest("plain member value", val); unittest("plain member value", val);
testSuite_verifyCount(1, k); testSuite_verifyCount(1, k);
kmember = MemberVariables_MemberValue_get(m); # m$getMemberValue(); kmember = m$MemberValue;
val = kmember$getValue(); val = kmember$getValue();
unittest("plain member value", val); unittest("plain member value", val);
testSuite_verifyCount(1, kmember); testSuite_verifyCount(1, kmember);
@ -478,12 +478,12 @@ testSuite <- function() {
{ {
m = MemberVariables(); m = MemberVariables();
k = Klass("plain member pointer"); k = Klass("plain member pointer");
MemberVariables_MemberPointer_set(self = m, s_MemberPointer = k); # m$setMemberPointer(k); m$MemberPointer = k;
val = k$getValue(); val = k$getValue();
unittest("plain member pointer", val); unittest("plain member pointer", val);
testSuite_verifyCount(1, k); testSuite_verifyCount(1, k);
kmember = MemberVariables_MemberPointer_get(self = m); # m$getMemberPointer(); kmember = m$MemberPointer;
val = kmember$getValue(); val = kmember$getValue();
unittest("plain member pointer", val); unittest("plain member pointer", val);
testSuite_verifyCount(1, kmember); testSuite_verifyCount(1, kmember);
@ -498,19 +498,19 @@ testSuite <- function() {
{ {
m = MemberVariables(); m = MemberVariables();
k = Klass("plain member reference"); k = Klass("plain member reference");
MemberVariables_MemberReference_set(self = m, s_MemberReference = k); # m$setMemberReference(k); m$MemberReference = k;
val = k$getValue(); val = k$getValue();
unittest("plain member reference", val); unittest("plain member reference", val);
testSuite_verifyCount(1, k); testSuite_verifyCount(1, k);
kmember = MemberVariables_MemberReference_get(self = m); #m$getMemberReference(); kmember = m$MemberReference;
val = kmember$getValue(); val = kmember$getValue();
unittest("plain member reference", val); unittest("plain member reference", val);
testSuite_verifyCount(1, kmember); # -> use_count undefined for _p_Space__Klass testSuite_verifyCount(1, kmember);
testSuite_verifyCount(1, k); testSuite_verifyCount(1, k);
delete_MemberVariables(m); # m.delete(); delete_MemberVariables(m); # m.delete();
testSuite_verifyCount(1, kmember); #-> use_count undefined for _p_Space__Klass testSuite_verifyCount(1, kmember);
testSuite_verifyCount(1, k); testSuite_verifyCount(1, k);
} }
@ -519,12 +519,12 @@ testSuite <- function() {
m = MemberVariables(); m = MemberVariables();
# shared_ptr by value # shared_ptr by value
k = MemberVariables_SmartMemberValue_get(self = m); # k = m$getSmartMemberValue(); k = m$SmartMemberValue;
if (!is.null(k)) if (!is.null(k))
stop("expected null"); stop("expected null");
MemberVariables_SmartMemberValue_set(self = m, s_SmartMemberValue = NULL); #m$setSmartMemberValue(null); m$SmartMemberValue = NULL;
k = MemberVariables_SmartMemberValue_get(self = m); #m$getSmartMemberValue(); k = m$SmartMemberValue;
if (!is.null(k)) if (!is.null(k))
stop("expected null"); stop("expected null");
#testSuite_verifyCount(0, k); # this does not work for nulls #testSuite_verifyCount(0, k); # this does not work for nulls
@ -532,13 +532,12 @@ testSuite <- function() {
# plain by value # plain by value
bNotCatched = F bNotCatched = F
try({ try({
MemberVariables_MemberValue_set(self = m, s_MemberValue = NULL) m$MemberValue = NULL
bNotCatched = T bNotCatched = T
}, silent = T) }, silent = T)
if (bNotCatched) { if (bNotCatched) {
stop("Failed to catch null pointer") stop("Failed to catch null pointer")
} }
} }