更新:添加doString方法及对应的单元测试

This commit is contained in:
2026-04-05 08:19:20 +08:00
parent 14526b8dc2
commit 8f1d409cf5
10 changed files with 337 additions and 146 deletions

View File

@ -285,6 +285,47 @@ TEST_F(LuaCjApiTest, PackagePathConfig) {
EXPECT_STREQ(res, lib_path.c_str());
}
// ==================== 新增测试doString 功能 ====================
// 测试简单表达式
TEST_F(LuaCjApiTest, DoStringSimple) {
int ret = dostring(runner, "return 1 + 1");
EXPECT_EQ(ret, 0);
char* res = getresult(runner);
EXPECT_STREQ(res, "2");
}
// 测试全局变量设置与读取
TEST_F(LuaCjApiTest, DoStringWithGlobal) {
int ret = dostring(runner, "g = 42; return g");
EXPECT_EQ(ret, 0);
char* res = getresult(runner);
EXPECT_STREQ(res, "42");
}
// 测试语法错误
TEST_F(LuaCjApiTest, DoStringSyntaxError) {
int ret = dostring(runner, "if true then");
EXPECT_EQ(ret, -1);
EXPECT_EQ(get_errno(), NAPI_ERROR_FUNCS);
char* res = getresult(runner);
EXPECT_NE(strstr(res, "'end' expected"), nullptr);
}
// 测试无返回值
TEST_F(LuaCjApiTest, DoStringNoReturn) {
int ret = dostring(runner, "x = 10");
EXPECT_EQ(ret, -1);
EXPECT_EQ(get_errno(), NAPI_SCRIPT_BAD_RET);
}
// 测试返回 nil
TEST_F(LuaCjApiTest, DoStringNilReturn) {
int ret = dostring(runner, "return nil");
EXPECT_EQ(ret, -1);
EXPECT_EQ(get_errno(), NAPI_SCRIPT_BAD_RET);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();