Skip to content

Commit 0d0e369

Browse files
AndLLAwsfulton
authored andcommitted
switched implementation reference from java to python
1 parent b885c22 commit 0d0e369

File tree

1 file changed

+103
-103
lines changed

1 file changed

+103
-103
lines changed

Examples/test-suite/r/li_boost_shared_ptr_runme.R

Lines changed: 103 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ testSuite_verifyCount <- function(expected, k) {
3030

3131
testSuite <- function() {
3232

33+
#
34+
# Reference Implementation is li_boost_shared_ptr_runme.py
35+
#
36+
3337
# simple shared_ptr usage - created in C++
3438
{
3539
k = Klass("me oh my")
@@ -106,6 +110,26 @@ testSuite <- function() {
106110
# testSuite_verifyCount(2, kret); # -> use_count not defined on _p_SwigBoost__shared_ptrT_Space__Klass_const_t
107111
}
108112

113+
# const pass by shared_ptr pointer
114+
{
115+
k = Klass("me oh my")
116+
kret = constsmartpointerpointertest(k)
117+
val = Klass_getValue(kret)
118+
unittest("me oh my", val)
119+
testSuite_verifyCount(2, k)
120+
# testSuite_verifyCount(2, kret) # -> use_count not defined on _p_SwigBoost__shared_ptrT_Space__Klass_const_t
121+
}
122+
123+
# const pass by shared_ptr reference
124+
{
125+
k = Klass("me oh my")
126+
kret = constsmartpointerreftest(k)
127+
val = Klass_getValue(kret)
128+
unittest("me oh my", val)
129+
testSuite_verifyCount(2, k)
130+
# testSuite_verifyCount(2, kret) # -> use_count not defined for _p_SwigBoost__shared_ptrT_Space__Klass_const_t
131+
}
132+
109133
# pass by value
110134
{
111135
k = Klass("me oh my");
@@ -191,6 +215,23 @@ testSuite <- function() {
191215
if (bNotCatched) {
192216
stop("Failed to catch null pointer");
193217
}
218+
219+
# test null pointers emitted from C++
220+
221+
k = sp_pointer_null()
222+
if (!is.null(k)) {
223+
stop("return was not null")
224+
}
225+
226+
k = null_sp_pointer()
227+
if (!is.null(k)) {
228+
stop("return was not null")
229+
}
230+
231+
k = sp_value_null()
232+
if (!is.null(k)) {
233+
stop("return was not null")
234+
}
194235
}
195236

196237
# $owner
@@ -209,170 +250,133 @@ testSuite <- function() {
209250
}
210251

211252
#
212-
# ###################### Derived classes ######################
253+
# ###################### Derived and base class mixed ######################
213254
#
214255

215-
# derived pass by shared_ptr
256+
# pass by shared_ptr (mixed)
216257
{
217258
k = KlassDerived("me oh my");
218259
kret = derivedsmartptrtest(k);
219260
val = kret$getValue();
220261
unittest("me oh my derivedsmartptrtest-Derived", val);
221262
testSuite_verifyCount(2, k);
222263
testSuite_verifyCount(2, kret);
223-
# testSuite_verifyCount(4, k); # includes two extra references for upcasts
224-
# testSuite_verifyCount(4, kret);
225264
}
226265

227-
# derived pass by shared_ptr pointer
266+
# pass by shared_ptr pointer (mixed)
228267
{
229268
k = KlassDerived("me oh my");
230269
kret = derivedsmartptrpointertest(k);
231270
val = kret$getValue();
232271
unittest("me oh my derivedsmartptrpointertest-Derived", val);
233272
testSuite_verifyCount(2, k);
234273
testSuite_verifyCount(2, kret);
235-
# testSuite_verifyCount(4, k); # includes two extra references for upcasts in the proxy classes
236-
# testSuite_verifyCount(4, kret);
237274
}
238275

239-
# derived pass by shared_ptr ref
276+
# pass by shared_ptr ref (mixed)
240277
{
241278
k = KlassDerived("me oh my");
242279
kret = derivedsmartptrreftest(k);
243280
val = kret$getValue();
244281
unittest("me oh my derivedsmartptrreftest-Derived", val);
245282
testSuite_verifyCount(2, k);
246283
testSuite_verifyCount(2, kret);
247-
#testSuite_verifyCount(4, k); # includes two extra references for upcasts in the proxy classes
248-
#testSuite_verifyCount(4, kret);
249284
}
250285

251-
# derived pass by shared_ptr pointer ref
286+
# pass by shared_ptr pointer reference (mixed)
252287
if (FALSE) {
253288
k = KlassDerived("me oh my");
254-
kret = derivedsmartptrpointerreftest(k); # undefined class _p_p_SwigBoost__shared_ptrT_Space__KlassDerived_t
289+
kret = smartpointerpointerreftest(k); # undefined class _p_p_SwigBoost__shared_ptrT_Space__Klass_t
255290
val = kret$getValue();
256291
unittest("me oh my derivedsmartptrpointerreftest-Derived", val);
257-
testSuite_verifyCount(4, k); # includes two extra references for upcasts in the proxy classes
258-
testSuite_verifyCount(4, kret);
292+
testSuite_verifyCount(2, k); # includes two extra references for upcasts in the proxy classes
293+
testSuite_verifyCount(2, kret);
259294
}
260295

261-
# derived pass by pointer
296+
# pass by value (mixed)
297+
{
298+
k = KlassDerived("me oh my")
299+
kret = valuetest(k)
300+
val = kret$getValue()
301+
unittest("me oh my valuetest", val) # note slicing
302+
testSuite_verifyCount(2, k)
303+
# testSuite_verifyCount(2, kret) --> use count not defined for _p_Space__Klass
304+
305+
# testSuite_verifyCount(1, k) # this is the python expected reference counting
306+
# testSuite_verifyCount(1, kret)
307+
}
308+
309+
# pass by pointer (mixed)
262310
{
263311
k = KlassDerived("me oh my");
264312
kret = derivedpointertest(k);
265313
val = kret$getValue();
266314
unittest("me oh my derivedpointertest-Derived", val);
267315
testSuite_verifyCount(1, k);
268316
# testSuite_verifyCount(1, kret); -> use_count not defined for _p_Space__KlassDerived
269-
270-
# testSuite_verifyCount(2, k); # includes an extra reference for the upcast in the proxy class
271-
# testSuite_verifyCount(2, kret);
272317
}
273318

274-
# derived pass by ref
319+
# pass by ref (mixed)
275320
{
276321
k = KlassDerived("me oh my");
277-
kret = derivedreftest(k);
322+
kret = reftest(k);
278323
val = kret$getValue();
279-
unittest("me oh my derivedreftest-Derived", val);
280-
testSuite_verifyCount(1, k);
281-
#testSuite_verifyCount(1, kret); --> use_count not defined for _p_Space__KlassDerived
324+
unittest("me oh my reftest-Derived", val);
325+
testSuite_verifyCount(2, k);
326+
#testSuite_verifyCount(2, kret); --> use_count not defined for _p_Space__KlassDerived
282327

283-
#testSuite_verifyCount(2, k); # includes an extra reference for the upcast in the proxy class
284-
#testSuite_verifyCount(2, kret);
328+
#testSuite_verifyCount(1, k); # --> this is the python expected counting
329+
#testSuite_verifyCount(1, kret);
285330
}
286331

287-
288332
#
289-
# ###################### Derived and base class mixed ######################
333+
# ################# Overloading tests ##################
290334
#
291335

292-
# pass by shared_ptr (mixed)
336+
# Base class
293337
{
294-
k = KlassDerived("me oh my");
295-
kret = smartpointertest(k);
296-
val = kret$getValue();
297-
unittest("me oh my smartpointertest-Derived", val);
298-
testSuite_verifyCount(3, k); # an extra reference for the upcast in the proxy class
299-
testSuite_verifyCount(3, kret);
300-
}
338+
k = Klass("me oh my");
301339

302-
# pass by shared_ptr pointer (mixed)
303-
{
304-
k = KlassDerived("me oh my");
305-
kret = smartpointerpointertest(k);
306-
val = kret$getValue();
307-
unittest("me oh my smartpointerpointertest-Derived", val);
308-
testSuite_verifyCount(3, k); # an extra reference for the upcast in the proxy class
309-
testSuite_verifyCount(3, kret);
310-
}
340+
unittest(overload_rawbyval(k), "rawbyval")
341+
unittest(overload_rawbyref(k), "rawbyref")
342+
unittest(overload_rawbyptr(k), "rawbyptr")
343+
# unittest(overload_rawbyptrref(k), "rawbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__Klass_t
311344

312-
# pass by shared_ptr reference (mixed)
313-
{
314-
k = KlassDerived("me oh my");
315-
kret = smartpointerreftest(k);
316-
val = kret$getValue();
317-
unittest("me oh my smartpointerreftest-Derived", val);
318-
testSuite_verifyCount(3, k); # an extra reference for the upcast in the proxy class
319-
testSuite_verifyCount(3, kret);
345+
unittest(overload_smartbyval(k), "smartbyval")
346+
unittest(overload_smartbyref(k), "smartbyref")
347+
unittest(overload_smartbyptr(k), "smartbyptr")
348+
# unittest(overload_smartbyptrref(k), "smartbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__Klass_t
320349
}
321350

322-
# pass by shared_ptr pointer reference (mixed)
323-
if (FALSE) {
324-
k = KlassDerived("me oh my");
325-
kret = smartpointerpointerreftest(k); # -> undefined _p_p_SwigBoost__shared_ptrT_Space__Klass_t
326-
val = kret$getValue();
327-
unittest("me oh my smartpointerpointerreftest-Derived", val);
328-
testSuite_verifyCount(3, k); # an extra reference for the upcast in the proxy class
329-
testSuite_verifyCount(3, kret);
330-
}
331-
332-
# pass by value (mixed)
351+
# Derived class
333352
{
334-
k = KlassDerived("me oh my");
335-
kret = valuetest(k);
336-
val = kret$getValue();
337-
unittest("me oh my valuetest", val); # note slicing
338-
testSuite_verifyCount(2, k); # an extra reference for the upcast in the proxy class
339-
# testSuite_verifyCount(1, kret); # -> use count undefined for _p_Space__Klass
340-
}
353+
k = KlassDerived("me oh my")
341354

342-
# pass by pointer (mixed)
343-
{
344-
k = KlassDerived("me oh my");
345-
kret = pointertest(k);
346-
val = kret$getValue();
347-
unittest("me oh my pointertest-Derived", val);
348-
testSuite_verifyCount(2, k); # an extra reference for the upcast in the proxy class
349-
# testSuite_verifyCount(1, kret); # -> use count undefined for _p_Space__Klass
350-
}
355+
unittest(overload_rawbyval(k), "rawbyval")
356+
unittest(overload_rawbyref(k), "rawbyref")
357+
unittest(overload_rawbyptr(k), "rawbyptr")
358+
# unittest(overload_rawbyptrref(k), "rawbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__KlassDerived_t
351359

352-
# pass by ref (mixed)
353-
{
354-
k = KlassDerived("me oh my");
355-
kret = reftest(k);
356-
val = kret$getValue();
357-
unittest("me oh my reftest-Derived", val);
358-
testSuite_verifyCount(2, k); # an extra reference for the upcast in the proxy class
359-
# testSuite_verifyCount(1, kret); # -> use count undefined for _p_Space__Klass
360+
unittest(overload_smartbyval(k), "smartbyval")
361+
unittest(overload_smartbyref(k), "smartbyref")
362+
unittest(overload_smartbyptr(k), "smartbyptr")
363+
# unittest(overload_smartbyptrref(k), "smartbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__KlassDerived_t
360364
}
361365

362366
# 3rd derived class
363367
{
364-
k = Klass3rdDerived("me oh my");
365-
val = k$getValue();
366-
unittest("me oh my-3rdDerived", val);
367-
testSuite_verifyCount(1, k);
368-
#testSuite_verifyCount(3, k); # 3 classes in inheritance chain == 3 swigCPtr values
368+
k = Klass3rdDerived("me oh my")
369369

370-
val = test3rdupcast(k);
371-
unittest("me oh my-3rdDerived", val);
372-
testSuite_verifyCount(2, k);
373-
#testSuite_verifyCount(3, k);
374-
}
370+
unittest(overload_rawbyval(k), "rawbyval")
371+
unittest(overload_rawbyref(k), "rawbyref")
372+
unittest(overload_rawbyptr(k), "rawbyptr")
373+
# unittest(overload_rawbyptrref(k), "rawbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__Klass3rdDerived_t
375374

375+
unittest(overload_smartbyval(k), "smartbyval")
376+
unittest(overload_smartbyref(k), "smartbyref")
377+
unittest(overload_smartbyptr(k), "smartbyptr")
378+
# unittest(overload_smartbyptrref(k), "smartbyptrref") --> undefined for _p_SwigBoost__shared_ptrT_Space__Klass3rdDerived_t
379+
}
376380

377381
#
378382
# ################ Member variables ####################
@@ -395,7 +399,7 @@ testSuite <- function() {
395399
testSuite_verifyCount(3, k);
396400

397401
delete_MemberVariables(m)
398-
testSuite_verifyCount(2, kmember); # these should be -1 wrt to the previous test ?
402+
testSuite_verifyCount(2, kmember);
399403
testSuite_verifyCount(2, k);
400404
}
401405

@@ -443,7 +447,7 @@ testSuite <- function() {
443447
testSuite_verifyCount(4, k);
444448

445449
delete_MemberVariables(m);
446-
testSuite_verifyCount(3, kmemberVal); # should be one less than the previous one
450+
testSuite_verifyCount(3, kmemberVal);
447451
testSuite_verifyCount(3, kmember);
448452
testSuite_verifyCount(3, k);
449453
}
@@ -624,10 +628,6 @@ testSuite <- function() {
624628
}
625629

626630

627-
628-
629-
630-
631631
#
632632
# ###################### Templates ######################
633633
#

0 commit comments

Comments
 (0)