diff --git a/Examples/test-suite/octave/li_boost_shared_ptr_runme.m b/Examples/test-suite/octave/li_boost_shared_ptr_runme.m deleted file mode 100644 index ca09316bc..000000000 --- a/Examples/test-suite/octave/li_boost_shared_ptr_runme.m +++ /dev/null @@ -1,478 +0,0 @@ -li_boost_shared_ptr - -debug = false; - -function main() - if (debug) - printf("Started\n") - endif - - li_boost_shared_ptr.cvar.debug_shared = debug; - - # Change loop count to run for a long time to monitor memory - loopCount = 1; #5000 - for i=0:loopCount, - self.runtest(); - endfor - - if (li_boost_shared_ptr.Klass.getTotal_count() != 0) - error("Klass.total_count=", li_boost_shared_ptr.Klass.getTotal_count()) - endif - - wrapper_count = li_boost_shared_ptr.shared_ptr_wrapper_count(); - if (wrapper_count != li_boost_shared_ptr.NOT_COUNTING) - if (wrapper_count != 0) - error("shared_ptr wrapper count not zero: %i", wrapper_count) - endif - endif - - if (debug) - error("Finished") - endif -endfunction - -function runtest() - # simple shared_ptr usage - created in C++ - k = li_boost_shared_ptr.Klass("me oh my"); - val = k.getValue(); - self.verifyValue("me oh my", val); - self.verifyCount(1, k); - - # simple shared_ptr usage - not created in C++ - k = li_boost_shared_ptr.factorycreate(); - val = k.getValue(); - self.verifyValue("factorycreate", val); - self.verifyCount(1, k); - - # pass by shared_ptr - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.smartpointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my smartpointertest", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # pass by shared_ptr pointer - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.smartpointerpointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my smartpointerpointertest", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # pass by shared_ptr reference - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.smartpointerreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my smartpointerreftest", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # pass by shared_ptr pointer reference - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.smartpointerpointerreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my smartpointerpointerreftest", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # const pass by shared_ptr - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.constsmartpointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # const pass by shared_ptr pointer - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.constsmartpointerpointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # const pass by shared_ptr reference - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.constsmartpointerreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # pass by value - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.valuetest(k); - val = kret.getValue(); - self.verifyValue("me oh my valuetest", val); - self.verifyCount(1, k); - self.verifyCount(1, kret); - - # pass by pointer - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.pointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my pointertest", val); - self.verifyCount(1, k); - self.verifyCount(1, kret); - - # pass by reference - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.reftest(k); - val = kret.getValue(); - self.verifyValue("me oh my reftest", val); - self.verifyCount(1, k); - self.verifyCount(1, kret); - - # pass by pointer reference - k = li_boost_shared_ptr.Klass("me oh my"); - kret = li_boost_shared_ptr.pointerreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my pointerreftest", val); - self.verifyCount(1, k); - self.verifyCount(1, kret); - - # null tests - k = None; - - if (li_boost_shared_ptr.smartpointertest(k) != None) - error("return was not null") - endif - - if (li_boost_shared_ptr.smartpointerpointertest(k) != None) - error("return was not null") - endif - - if (li_boost_shared_ptr.smartpointerreftest(k) != None) - error("return was not null") - endif - - if (li_boost_shared_ptr.smartpointerpointerreftest(k) != None) - error("return was not null") - endif - - if (li_boost_shared_ptr.nullsmartpointerpointertest(None) != "null pointer") - error("not null smartpointer pointer") - endif - - try - li_boost_shared_ptr.valuetest(k) - error("Failed to catch null pointer") - catch - end_try_catch - - if (li_boost_shared_ptr.pointertest(k) != None) - error("return was not null") - endif - - try - li_boost_shared_ptr.reftest(k) - error("Failed to catch null pointer") - catch - end_try_catch - - # $owner - k = li_boost_shared_ptr.pointerownertest(); - val = k.getValue(); - self.verifyValue("pointerownertest", val); - self.verifyCount(1, k); - k = li_boost_shared_ptr.smartpointerpointerownertest(); - val = k.getValue(); - self.verifyValue("smartpointerpointerownertest", val); - self.verifyCount(1, k); - - # //////////////////////////////// Derived class //////////////////////////////////////// - # derived pass by shared_ptr - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.derivedsmartptrtest(k); - val = kret.getValue(); - self.verifyValue("me oh my derivedsmartptrtest-Derived", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # derived pass by shared_ptr pointer - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.derivedsmartptrpointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my derivedsmartptrpointertest-Derived", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # derived pass by shared_ptr ref - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.derivedsmartptrreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my derivedsmartptrreftest-Derived", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # derived pass by shared_ptr pointer ref - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.derivedsmartptrpointerreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my derivedsmartptrpointerreftest-Derived", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # derived pass by pointer - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.derivedpointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my derivedpointertest-Derived", val); - self.verifyCount(1, k); - self.verifyCount(1, kret); - - # derived pass by ref - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.derivedreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my derivedreftest-Derived", val); - self.verifyCount(1, k); - self.verifyCount(1, kret); - - # //////////////////////////////// Derived and base class mixed //////////////////////////////////////// - # pass by shared_ptr (mixed) - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.smartpointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my smartpointertest-Derived", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # pass by shared_ptr pointer (mixed) - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.smartpointerpointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my smartpointerpointertest-Derived", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # pass by shared_ptr reference (mixed) - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.smartpointerreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my smartpointerreftest-Derived", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # pass by shared_ptr pointer reference (mixed) - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.smartpointerpointerreftest(k); - val = kret.getValue(); - self.verifyValue("me oh my smartpointerpointerreftest-Derived", val); - self.verifyCount(2, k); - self.verifyCount(2, kret); - - # pass by value (mixed) - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.valuetest(k); - val = kret.getValue(); - self.verifyValue("me oh my valuetest", val); # note slicing - self.verifyCount(1, k); - self.verifyCount(1, kret); - - # pass by pointer (mixed) - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.pointertest(k); - val = kret.getValue(); - self.verifyValue("me oh my pointertest-Derived", val); - self.verifyCount(1, k); - self.verifyCount(1, kret); - - # pass by ref (mixed) - k = li_boost_shared_ptr.KlassDerived("me oh my"); - kret = li_boost_shared_ptr.reftest(k); - val = kret.getValue(); - self.verifyValue("me oh my reftest-Derived", val); - 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"); - - # //////////////////////////////// Member variables //////////////////////////////////////// - # smart pointer by value - m = li_boost_shared_ptr.MemberVariables(); - k = li_boost_shared_ptr.Klass("smart member value"); - m.SmartMemberValue = k; - val = k.getValue(); - self.verifyValue("smart member value", val); - self.verifyCount(2, k); - - kmember = m.SmartMemberValue; - val = kmember.getValue(); - self.verifyValue("smart member value", val); - self.verifyCount(3, kmember); - self.verifyCount(3, k); - - clear m; - self.verifyCount(2, kmember); - self.verifyCount(2, k); - - # smart pointer by pointer - m = li_boost_shared_ptr.MemberVariables(); - k = li_boost_shared_ptr.Klass("smart member pointer"); - m.SmartMemberPointer = k; - val = k.getValue(); - self.verifyValue("smart member pointer", val); - self.verifyCount(1, k); - - kmember = m.SmartMemberPointer; - val = kmember.getValue(); - self.verifyValue("smart member pointer", val); - self.verifyCount(2, kmember); - self.verifyCount(2, k); - - clear m; - self.verifyCount(2, kmember); - self.verifyCount(2, k); - - # smart pointer by reference - m = li_boost_shared_ptr.MemberVariables(); - k = li_boost_shared_ptr.Klass("smart member reference"); - m.SmartMemberReference = k; - val = k.getValue(); - self.verifyValue("smart member reference", val); - self.verifyCount(2, k); - - kmember = m.SmartMemberReference; - val = kmember.getValue(); - self.verifyValue("smart member reference", val); - self.verifyCount(3, kmember); - self.verifyCount(3, k); - - # The C++ reference refers to SmartMemberValue... - kmemberVal = m.SmartMemberValue; - val = kmember.getValue(); - self.verifyValue("smart member reference", val); - self.verifyCount(4, kmemberVal); - self.verifyCount(4, kmember); - self.verifyCount(4, k); - - clear m; - self.verifyCount(3, kmemberVal); - self.verifyCount(3, kmember); - self.verifyCount(3, k); - - # plain by value - m = li_boost_shared_ptr.MemberVariables(); - k = li_boost_shared_ptr.Klass("plain member value"); - m.MemberValue = k; - val = k.getValue(); - self.verifyValue("plain member value", val); - self.verifyCount(1, k); - - kmember = m.MemberValue; - val = kmember.getValue(); - self.verifyValue("plain member value", val); - self.verifyCount(1, kmember); - self.verifyCount(1, k); - - clear m; - self.verifyCount(1, kmember); - self.verifyCount(1, k); - - # plain by pointer - m = li_boost_shared_ptr.MemberVariables(); - k = li_boost_shared_ptr.Klass("plain member pointer"); - m.MemberPointer = k; - val = k.getValue(); - self.verifyValue("plain member pointer", val); - self.verifyCount(1, k); - - kmember = m.MemberPointer; - val = kmember.getValue(); - self.verifyValue("plain member pointer", val); - self.verifyCount(1, kmember); - self.verifyCount(1, k); - - clear m; - self.verifyCount(1, kmember); - self.verifyCount(1, k); - - # plain by reference - m = li_boost_shared_ptr.MemberVariables(); - k = li_boost_shared_ptr.Klass("plain member reference"); - m.MemberReference = k; - val = k.getValue(); - self.verifyValue("plain member reference", val); - self.verifyCount(1, k); - - kmember = m.MemberReference; - val = kmember.getValue(); - self.verifyValue("plain member reference", val); - self.verifyCount(1, kmember); - self.verifyCount(1, k); - - clear m; - self.verifyCount(1, kmember); - self.verifyCount(1, k); - - # null member variables - m = li_boost_shared_ptr.MemberVariables(); - - # shared_ptr by value - k = m.SmartMemberValue; - if (k != None) - error("expected null") - endif - m.SmartMemberValue = None; - k = m.SmartMemberValue; - if (k != None) - error("expected null") - endif - self.verifyCount(0, k); - - # plain by value - try - m.MemberValue = None; - error("Failed to catch null pointer"); - catch - end_try_catch - - # templates - pid = li_boost_shared_ptr.PairIntDouble(10, 20.2) - if (pid.baseVal1 != 20 || pid.baseVal2 != 40.4) - error("Base values wrong") - endif - if (pid.val1 != 10 || pid.val2 != 20.2) - error("Derived Values wrong") - endif -endfunction - -function verifyValue(expected,got) - if (expected != got) - error("verify value failed. Expected: %i, Got %i\n",expected,got) - endif -endfunction - -function verifyCount(expected,k) - got = li_boost_shared_ptr.use_count(k); - if (expected != got) - error("verify value failed. Expected: %i, Got %i\n",expected,got) - endif -endfunction - -