diff --git a/test/makefile b/test/makefile index 0b40707..d214a3b 100644 --- a/test/makefile +++ b/test/makefile @@ -1,7 +1,7 @@ CC=gcc IDIR+=. ../Toy/source ../core -CFLAGS+=$(addprefix -I,$(IDIR)) -g -Wall -W -Wno-unused-parameter -Wno-unused-function -Wno-unused-variable +CFLAGS+=$(addprefix -I,$(IDIR)) -DSDL_MAIN_HANDLED -g -Wall -W -Wno-unused-parameter -Wno-unused-function -Wno-unused-variable LIBS+=-lSDL2 -lSDL2_image -ltoy -lcore ODIR = obj diff --git a/test/scripts/child_engine_node.toy b/test/scripts/child_engine_node.toy index e84172c..ee6f6f9 100644 --- a/test/scripts/child_engine_node.toy +++ b/test/scripts/child_engine_node.toy @@ -1,14 +1,14 @@ var tally: int = 0; -fn onInit(node) { +fn onInit(node: opaque) { print "child init called"; } -fn onStep(node) { +fn onStep(node: opaque) { print "child step called"; print ++tally; } -fn onFree(node) { +fn onFree(node: opaque) { print "child free called"; } \ No newline at end of file diff --git a/test/scripts/parent_engine_node.toy b/test/scripts/parent_engine_node.toy index 3c8eb59..4d85bf4 100644 --- a/test/scripts/parent_engine_node.toy +++ b/test/scripts/parent_engine_node.toy @@ -1,11 +1,11 @@ -fn onInit(node) { +fn onInit(node: opaque) { print "init called"; } -fn onStep(node) { +fn onStep(node: opaque) { print "step called"; } -fn onFree(node) { +fn onFree(node: opaque) { print "free called"; } \ No newline at end of file diff --git a/test/test_engine_node.c b/test/test_engine_node.c index 2ba0763..af80393 100644 --- a/test/test_engine_node.c +++ b/test/test_engine_node.c @@ -34,13 +34,20 @@ int main() { initEngineNode(node, &interpreter, tb, size); - callEngineNode(node, &interpreter, "onInit"); - callEngineNode(node, &interpreter, "onStep"); - callEngineNode(node, &interpreter, "onFree"); + Literal nodeLiteral = TO_OPAQUE_LITERAL(node, 0); + //argument list to pass in the node + LiteralArray arguments; + initLiteralArray(&arguments); + + //call each function + callRecursiveEngineNode(node, &interpreter, "onInit", &arguments); + callRecursiveEngineNode(node, &interpreter, "onStep", &arguments); + callRecursiveEngineNode(node, &interpreter, "onQuit", &arguments); + + //cleanup + freeLiteralArray(&arguments); freeEngineNode(node); - - //free free((void*)source); freeInterpreter(&interpreter); } @@ -75,17 +82,22 @@ int main() { free((void*)source); } + //argument list to pass in each time + LiteralArray arguments; + initLiteralArray(&arguments); + //test the calls - callEngineNode(node, &interpreter, "onInit"); + callRecursiveEngineNode(node, &interpreter, "onInit", &arguments); for (int i = 0; i < 10; i++) { - callEngineNode(node, &interpreter, "onStep"); + callRecursiveEngineNode(node, &interpreter, "onStep", &arguments); } - callEngineNode(node, &interpreter, "onFree"); + callRecursiveEngineNode(node, &interpreter, "onFree", &arguments); - //free - freeEngineNode(node); + //cleanup + freeLiteralArray(&arguments); + freeEngineNode(node); //frees all children free((void*)source); freeInterpreter(&interpreter); }