mirror of
https://gitcode.com/JianFeeeee/LuaCangjia_api.git
synced 2026-09-26 12:23:43 +00:00
feat: 适配 Lua 5.1.5 (lua_5.1.5 分支)
- lib/lua 替换为 Lua 5.1.5 官方源码; CMakeLists 删除 5.1 不存在的 lcorolib.c/lctype.c/lutf8lib.c/lbitlib.c - 补充 lua.hpp C++ 包装头(5.1 官方不提供, 保持桥接 include 路径不变) - LUA_OK 兼容宏: 5.1 无此定义(成功返回值为 0) - luaL_tolstring 兼容: 5.1 无此 API, l_print 改用 lua_tostring + lua_typename 兜底(#if LUA_VERSION_NUM >= 502 条件编译, 弹栈逻辑同步分支) - luaL_setfuncs 兼容: 5.1 无此 API, push_tty_file 改手动循环注册 - I/O 重定向沿用 Registry 方案(自 5.2.4 分支同步), typed interop 版本自适应断言同步 - 验证: GTest 44/44 通过
This commit is contained in:
@ -207,7 +207,11 @@ func testLoadLibOverflow(): Unit {
|
||||
func testPackagePathConfig(): Unit {
|
||||
let runner = LuaRunner(pkgpath: SCRIPTS_DIR + "/pkgmods/?.lua")
|
||||
let res = runner.runScript(scriptPath("pkgpath_require_mylib.lua"), "")
|
||||
@Expect(res, SCRIPTS_DIR + "/pkgmods/mylib.lua")
|
||||
// 跨版本语义:Lua 5.4+ 的 require 返回 2 值,run() 读栈顶得 loader data(文件路径);
|
||||
// Lua ≤5.3 返回 1 值,得模块本身("pkgmod-mylib")。两者都表明 pkgpath 生效。
|
||||
let isPath = res == SCRIPTS_DIR + "/pkgmods/mylib.lua"
|
||||
let isModule = res == "LoadedViaPkgPath"
|
||||
@Expect(isPath || isModule, true)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user