Fix modules without return type throwing segmentation fault
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2019-09-12 21:50:48 +02:00
parent 80f3af22ac
commit 3a9f1f976a
3 changed files with 38 additions and 5 deletions

View File

@@ -24,7 +24,14 @@ local module = {
}
return module
)")
}
},
{"simple_no_return", Script::Create(u"foo = 500")},
{"no_return_with_local", Script::Create(uR"(
local foo = 684
function bar()
return foo
end
)")},
};
}
@@ -106,5 +113,31 @@ return list.contains({"foo", "bar"}, "bar")
delete script;
}
TEST_CASE( "Simple no return module", "[integration]" ) {
ModuleHandler::Initialize();
auto script = Script::Create(uR"(
require("simple_no_return")
return foo
)");
REQUIRE(!script->Diagnostics -> HasErrors());
auto result = script->Evaluate();
CHECK(result->EvaluateInteger() == 500);
delete script;
}
TEST_CASE( "Simple no return module with local variable", "[integration]" ) {
ModuleHandler::Initialize();
auto script = Script::Create(uR"(
require("no_return_with_local")
return bar()
)");
REQUIRE(!script->Diagnostics -> HasErrors());
auto result = script->Evaluate();
CHECK(result->EvaluateInteger() == 684);
delete script;
}
#endif