1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-12-24 09:23:19 +00:00

Fix tests

This commit is contained in:
Evil Eye 2025-07-07 16:48:24 +02:00
parent 36604777f2
commit 0c4af81a69

View file

@ -12,33 +12,30 @@ namespace
struct LuaUtilPackageTest : Test struct LuaUtilPackageTest : Test
{ {
LuaUtil::LuaState mLuaState{ nullptr, nullptr }; LuaUtil::LuaState mLuaState{ nullptr, nullptr };
sol::state& lua;
LuaUtilPackageTest() LuaUtilPackageTest()
: lua(mLuaState.unsafeState())
{ {
mLuaState.addInternalLibSearchPath( mLuaState.addInternalLibSearchPath(
std::filesystem::path{ OPENMW_PROJECT_SOURCE_DIR } / "components" / "lua"); std::filesystem::path{ OPENMW_PROJECT_SOURCE_DIR } / "components" / "lua");
sol::state_view sol = mLuaState.unsafeState();
lua["loadInternalLib"] = [this](const std::string& name) { return mLuaState.loadInternalLib(name); }; sol["util"] = LuaUtil::initUtilPackage(sol);
lua.open_libraries(sol::lib::base, sol::lib::math, sol::lib::string);
lua["util"] = LuaUtil::initUtilPackage(lua);
} }
}; };
template <typename T> template <typename T>
T get(sol::state& lua, const std::string& luaCode) T get(sol::state_view& lua, const std::string& luaCode)
{ {
return lua.safe_script("return " + luaCode).get<T>(); return lua.safe_script("return " + luaCode).get<T>();
} }
std::string getAsString(sol::state& lua, std::string luaCode) std::string getAsString(sol::state_view& lua, std::string luaCode)
{ {
return LuaUtil::toString(lua.safe_script("return " + luaCode)); return LuaUtil::toString(lua.safe_script("return " + luaCode));
} }
TEST_F(LuaUtilPackageTest, Vector2) TEST_F(LuaUtilPackageTest, Vector2)
{ {
sol::state_view lua = mLuaState.unsafeState();
lua.safe_script("v = util.vector2(3, 4)"); lua.safe_script("v = util.vector2(3, 4)");
EXPECT_FLOAT_EQ(get<float>(lua, "v.x"), 3); EXPECT_FLOAT_EQ(get<float>(lua, "v.x"), 3);
EXPECT_FLOAT_EQ(get<float>(lua, "v.y"), 4); EXPECT_FLOAT_EQ(get<float>(lua, "v.y"), 4);
@ -71,6 +68,7 @@ namespace
TEST_F(LuaUtilPackageTest, Vector3) TEST_F(LuaUtilPackageTest, Vector3)
{ {
sol::state_view lua = mLuaState.unsafeState();
lua.safe_script("v = util.vector3(5, 12, 13)"); lua.safe_script("v = util.vector3(5, 12, 13)");
EXPECT_FLOAT_EQ(get<float>(lua, "v.x"), 5); EXPECT_FLOAT_EQ(get<float>(lua, "v.x"), 5);
EXPECT_FLOAT_EQ(get<float>(lua, "v.y"), 12); EXPECT_FLOAT_EQ(get<float>(lua, "v.y"), 12);
@ -107,6 +105,7 @@ namespace
TEST_F(LuaUtilPackageTest, Vector4) TEST_F(LuaUtilPackageTest, Vector4)
{ {
sol::state_view lua = mLuaState.unsafeState();
lua.safe_script("v = util.vector4(5, 12, 13, 15)"); lua.safe_script("v = util.vector4(5, 12, 13, 15)");
EXPECT_FLOAT_EQ(get<float>(lua, "v.x"), 5); EXPECT_FLOAT_EQ(get<float>(lua, "v.x"), 5);
EXPECT_FLOAT_EQ(get<float>(lua, "v.y"), 12); EXPECT_FLOAT_EQ(get<float>(lua, "v.y"), 12);
@ -146,6 +145,7 @@ namespace
TEST_F(LuaUtilPackageTest, Color) TEST_F(LuaUtilPackageTest, Color)
{ {
sol::state_view lua = mLuaState.unsafeState();
lua.safe_script("brown = util.color.rgba(0.75, 0.25, 0, 1)"); lua.safe_script("brown = util.color.rgba(0.75, 0.25, 0, 1)");
EXPECT_EQ(get<std::string>(lua, "tostring(brown)"), "(0.75, 0.25, 0, 1)"); EXPECT_EQ(get<std::string>(lua, "tostring(brown)"), "(0.75, 0.25, 0, 1)");
lua.safe_script("blue = util.color.rgb(0, 1, 0, 1)"); lua.safe_script("blue = util.color.rgb(0, 1, 0, 1)");
@ -162,6 +162,7 @@ namespace
TEST_F(LuaUtilPackageTest, Transform) TEST_F(LuaUtilPackageTest, Transform)
{ {
sol::state_view lua = mLuaState.unsafeState();
lua["T"] = lua["util"]["transform"]; lua["T"] = lua["util"]["transform"];
lua["v"] = lua["util"]["vector3"]; lua["v"] = lua["util"]["vector3"];
EXPECT_ERROR(lua.safe_script("T.identity = nil"), "attempt to index"); EXPECT_ERROR(lua.safe_script("T.identity = nil"), "attempt to index");
@ -195,6 +196,7 @@ namespace
TEST_F(LuaUtilPackageTest, UtilityFunctions) TEST_F(LuaUtilPackageTest, UtilityFunctions)
{ {
sol::state_view lua = mLuaState.unsafeState();
lua.safe_script("v = util.vector2(1, 0):rotate(math.rad(120))"); lua.safe_script("v = util.vector2(1, 0):rotate(math.rad(120))");
EXPECT_FLOAT_EQ(get<float>(lua, "v.x"), -0.5f); EXPECT_FLOAT_EQ(get<float>(lua, "v.x"), -0.5f);
EXPECT_FLOAT_EQ(get<float>(lua, "v.y"), 0.86602539f); EXPECT_FLOAT_EQ(get<float>(lua, "v.y"), 0.86602539f);