mirror of
https://gitcode.com/JianFeeeee/LuaCangjia_api.git
synced 2026-09-21 09:28:17 +00:00
feat: 适配 Lua 5.3.6 (lua_5.3.6 分支)
- lib/lua 替换为 Lua 5.3.6 官方源码 - luaconf.h LUA_EXTRASPACE 扩为 272 字节(容纳 iopath 重定向结构, 与 5.4.8 同方案) - CMakeLists 版本号同步; lbitlib.c 不参与链接(5.3 位运算已内建, bit32 未注册) - PackagePathConfig 测试跨版本语义适配: * Lua 5.3 require 返回 1 值(模块本身) → 栈顶为 'LoadedViaPkgPath' * Lua 5.4+ require 返回 2 值(模块+loader data) → 栈顶为文件路径 断言改为接受两种结果, 并注明差异原因 - 验证: GTest 44/44 通过
This commit is contained in:
@ -282,7 +282,12 @@ TEST_F(LuaCjApiTest, PackagePathConfig) {
|
||||
|
||||
EXPECT_EQ(ret, 0) << "Require failed, maybe pkgpath not set correctly. Errno: " << get_errno();
|
||||
char* res = getresult(runner);
|
||||
EXPECT_STREQ(res, lib_path.c_str());
|
||||
// 跨版本语义适配:
|
||||
// - Lua 5.3 的 require 返回 1 个值(模块本身),run() 读栈顶得模块返回值 "LoadedViaPkgPath"
|
||||
// - Lua 5.4+ 的 require 返回 2 个值(模块 + loader data),run() 读栈顶得 loader data(文件路径)
|
||||
// 两者都表明 require 经 pkgpath 成功定位并加载了模块
|
||||
EXPECT_TRUE(strcmp(res, lib_path.c_str()) == 0 || strcmp(res, "LoadedViaPkgPath") == 0)
|
||||
<< "unexpected require result: " << (res ? res : "(null)");
|
||||
}
|
||||
|
||||
// ==================== 新增测试:doString 功能 ====================
|
||||
|
||||
Reference in New Issue
Block a user