From bf60a354d431faedbb85adb77fc2fe381b18880a Mon Sep 17 00:00:00 2001 From: Ryan Ward Date: Fri, 4 Feb 2022 17:27:13 -0500 Subject: [PATCH] So the bug wasn't a bug all along --- tests/connectionTest.lua | 79 ----------------------- tests/objectTests.lua | 43 ------------- tests/runtests.lua | 133 ++++++++++++++++++++++++++++++++++----- 3 files changed, 118 insertions(+), 137 deletions(-) delete mode 100644 tests/connectionTest.lua delete mode 100644 tests/objectTests.lua diff --git a/tests/connectionTest.lua b/tests/connectionTest.lua deleted file mode 100644 index babf1f2..0000000 --- a/tests/connectionTest.lua +++ /dev/null @@ -1,79 +0,0 @@ -function connectionThreadTests(multi,thread) - print("Starting Connection and Thread tests!") - func = thread:newFunction(function(count) - print("Starting Status test: ",count) - local a = 0 - while true do - a = a + 1 - thread.sleep(.1) - thread.pushStatus(a,count) - if a == count then break end - end - return "Done" - end) - local ret = func(10) - local ret2 = func(15) - local ret3 = func(20) - local s1,s2,s3 = 0,0,0 - ret.OnError(function(...) - print("Error:",...) - end) - ret.OnStatus(function(part,whole) - s1 = math.ceil((part/whole)*1000)/10 - print(s1) - end) - ret2.OnStatus(function(part,whole) - s2 = math.ceil((part/whole)*1000)/10 - end) - ret3.OnStatus(function(part,whole) - s3 = math.ceil((part/whole)*1000)/10 - end) - ret.OnReturn(function() - print("Done") - end) - local err, timeout = thread.hold(ret.OnReturn + ret2.OnReturn + ret3.OnReturn) - if s1 == 100 and s2 == 100 and s3 == 100 then - print("Threads: Ok") - else - print("Threads OnStatus or thread.hold(conn) Error!") - end - if timeout then - print("Threads or Connection Error!") - else - print("Connection Test 1: Ok") - end - conn1 = multi:newConnection() - conn2 = multi:newConnection() - conn3 = multi:newConnection() - local c1,c2,c3,c4 = false,false,false,false - local a = conn1(function() - c1 = true - end) - local b = conn2(function() - c2 = true - end) - local c = conn3(function() - c3 = true - end) - local d = conn3(function() - c4 = true - end) - conn1:Fire() - conn2:Fire() - conn3:Fire() - if c1 and c2 and c3 and c4 then - print("Connection Test 2: Ok") - else - print("Connection Test 2: Error") - end - c3 = false - c4 = false - d:Destroy() - conn3:Fire() - if c3 and not(c4) then - print("Connection Test 3: Ok") - else - print("Connection Test 3: Error removing connection") - end -end -return connectionThreadTests \ No newline at end of file diff --git a/tests/objectTests.lua b/tests/objectTests.lua deleted file mode 100644 index b94cdb9..0000000 --- a/tests/objectTests.lua +++ /dev/null @@ -1,43 +0,0 @@ -function objectTests(multi,thread) - local alarms,tsteps,steps,loops,tloops,updaters,events=false,0,0,0,0,0,false - print("Testing Basic Features. If this fails most other features will probably not work!") - multi:newAlarm(2):OnRing(function(a) - alarms = true - a:Destroy() - end) - multi:newTStep(1,10,1,.1):OnStep(function(t) - tsteps = tsteps + 1 - end).OnEnd(function(step) - step:Destroy() - end) - multi:newStep(1,10):OnStep(function(s) - steps = steps + 1 - end).OnEnd(function(step) - step:Destroy() - end) - local loop = multi:newLoop(function(l) - loops = loops + 1 - end) - multi:newTLoop(function(t) - tloops = tloops + 1 - end,.1) - local updater = multi:newUpdater(1):OnUpdate(function() - updaters = updaters + 1 - end) - local event = multi:newEvent(function() - return alarms - end) - event.OnEvent(function(evnt) - evnt:Destroy() - events = true - print("Alarms: Ok") - print("Events: Ok") - if tsteps == 10 then print("TSteps: Ok") else print("TSteps: Bad!") end - if steps == 10 then print("Steps: Ok") else print("Steps: Bad!") end - if loops > 100 then print("Loops: Ok") else print("Loops: Bad!") end - if tloops > 10 then print("TLoops: Ok") else print("TLoops: Bad!") end - if updaters > 100 then print("Updaters: Ok") else print("Updaters: Bad!") end - end) - thread.hold(event.OnEvent) -end -return objectTests \ No newline at end of file diff --git a/tests/runtests.lua b/tests/runtests.lua index 38c8860..fdedeb9 100644 --- a/tests/runtests.lua +++ b/tests/runtests.lua @@ -22,23 +22,126 @@ end ]] local multi, thread = require("multi"):init{priority=true} local good = false +multi:newAlarm(3):OnRing(function() + good = true +end) runTest = thread:newFunction(function() - -- thread.sleep(1) - -- local objects = multi:newProcessor("Basic Object Tests") - -- objects.OnError(function(...) - -- print("Error: ",...) - -- end) - -- objects.Start() - -- require("tests/objectTests")(objects,thread) - -- objects.Stop() - local conn_thread = multi:newProcessor("Connection/Thread Tests") - conn_thread.OnError(function(...) - print("Error: ",...) + local alarms,tsteps,steps,loops,tloops,updaters,events=false,0,0,0,0,0,false + print("Testing Basic Features. If this fails most other features will probably not work!") + multi:newAlarm(2):OnRing(function(a) + alarms = true + a:Destroy() + end) + multi:newTStep(1,10,1,.1):OnStep(function(t) + tsteps = tsteps + 1 + end).OnEnd(function(step) + step:Destroy() + end) + multi:newStep(1,10):OnStep(function(s) + steps = steps + 1 + end).OnEnd(function(step) + step:Destroy() + end) + local loop = multi:newLoop(function(l) + loops = loops + 1 + end) + multi:newTLoop(function(t) + tloops = tloops + 1 + end,.1) + local updater = multi:newUpdater(1):OnUpdate(function() + updaters = updaters + 1 + end) + local event = multi:newEvent(function() + return alarms + end) + event.OnEvent(function(evnt) + evnt:Destroy() + events = true + print("Alarms: Ok") + print("Events: Ok") + if tsteps == 10 then print("TSteps: Ok") else print("TSteps: Bad!") end + if steps == 10 then print("Steps: Ok") else print("Steps: Bad!") end + if loops > 100 then print("Loops: Ok") else print("Loops: Bad!") end + if tloops > 10 then print("TLoops: Ok") else print("TLoops: Bad!") end + if updaters > 100 then print("Updaters: Ok") else print("Updaters: Bad!") end + end) + thread.hold(event.OnEvent) + print("Starting Connection and Thread tests!") + func = thread:newFunction(function(count) + print("Starting Status test: ",count) + local a = 0 + while true do + a = a + 1 + thread.sleep(.1) + thread.pushStatus(a,count) + if a == count then break end + end + return "Done" end) - conn_thread.Start() - require("tests/connectionTest")(conn_thread,thread) - conn_thread.Stop() - --print(multi:getTasksDetails()) + local ret = func(10) + local ret2 = func(15) + local ret3 = func(20) + local s1,s2,s3 = 0,0,0 + ret.OnError(function(...) + print("Error:",...) + end) + ret.OnStatus(function(part,whole) + s1 = math.ceil((part/whole)*1000)/10 + end) + ret2.OnStatus(function(part,whole) + s2 = math.ceil((part/whole)*1000)/10 + end) + ret3.OnStatus(function(part,whole) + s3 = math.ceil((part/whole)*1000)/10 + end) + ret.OnReturn(function() + print("Done") + end) + local err, timeout = thread.hold(ret.OnReturn + ret2.OnReturn + ret3.OnReturn) + if s1 == 100 and s2 == 100 and s3 == 100 then + print("Threads: Ok") + else + print("Threads OnStatus or thread.hold(conn) Error!") + end + if timeout then + print("Threads or Connection Error!") + else + print("Connection Test 1: Ok") + end + conn1 = multi:newConnection() + conn2 = multi:newConnection() + conn3 = multi:newConnection() + local c1,c2,c3,c4 = false,false,false,false + local a = conn1(function() + c1 = true + end) + local b = conn2(function() + c2 = true + end) + local c = conn3(function() + c3 = true + end) + local d = conn3(function() + c4 = true + end) + conn1:Fire() + conn2:Fire() + conn3:Fire() + if c1 and c2 and c3 and c4 then + print("Connection Test 2: Ok") + else + print("Connection Test 2: Error") + end + c3 = false + c4 = false + d:Destroy() + conn3:Fire() + if c3 and not(c4) then + print("Connection Test 3: Ok") + else + print("Connection Test 3: Error removing connection") + end + os.exit() -- End of tests end) runTest().OnError(function(...) print("Error:",...)