////////////////////////////////////////////////////////////////////////// global cleanUpFunction = function() { if(myFile) { myFile.Close(); } }; ////////////////////////////////////////////////////////////////////////// createTestScripts = function() { setCatchFunction(cleanUpFunction); print("Creating Test Scripts"); global myFile = File(); assert(myFile); assert(myFile.Open("testscript1.gm", "text", false)); assert(myFile.Write("print(\"1) should only see this once\");")); myFile.Close(); assert(myFile.Open("testscript2.gm", "text", false)); assert(myFile.Write("print(\"2) should only see this once\");")); myFile.Close(); }; ////////////////////////////////////////////////////////////////////////// testRequire = function() { setCatchFunction(cleanUpFunction); // Clear the global tracker. global _GM_REQUIRE = {}; print("Testing function"); require("user/testscript1.gm"); require("user/testscript2.gm"); print("Testing Require again"); require("user/testscript1.gm"); require("user/testscript2.gm"); }; ////////////////////////////////////////////////////////////////////////// deleteTestScripts = function() { print("Deleting Test Scripts"); assert(System.FileDelete("testscript1.gm")); assert(System.FileDelete("testscript2.gm")); }; ////////////////////////////////////////////////////////////////////////// print("-----------------------"); print("Testing Require Keyword"); EnableScriptDebug(true); unitTest(createTestScripts); unitTest(testRequire); unitTest(deleteTestScripts); EnableScriptDebug(false); print("-----------------------");