下载适合您 Lua 版本的测试套件,然后按照下列说明运行基础、完整和内部测试。
如果没有任何测试套件完全匹配您的 Lua 版本,请下载与您的 Lua 版本最接近的套件。套件无法跨不同版本使用。
测试套件不是产品;它只是我们内部使用的一个工具。它在这里提供是应广大用户的要求,但我们无法为它提供任何支持。您需要自行解决问题。
所有文件均在此许可证下分发。检查它们的校验和以确认软件包的完整性。
文件名 | 日期 | 大小 | 校验和 (sha256) |
---|---|---|---|
lua-5.4.6-tests.tar.gz | 2023-05-02 | 136212 | 63ed5f5bcfd15dfd2f72e04c2f8c10585bb8de9e558df62b335cb9e5c1a4ef34 |
lua-5.4.5-tests.tar.gz | 2023-04-18 | 136198 | 856103e7298d354d870010b4966ce21281cbf3373abafd50231a98561bca793d |
lua-5.4.4-tests.tar.gz | 2022-01-13 | 134094 | 04d28355cd67a2299dfe5708b55a0ff221ccb1a3907a3113cc103ccc05ac6aad |
lua-5.4.3-tests.tar.gz | 2021-03-15 | 131911 | 5d29c3022897a8290f280ebe1c6853248dfa35a668e1fc02ba9c8cde4e7bf110 |
lua-5.4.2-tests.tar.gz | 2020-11-13 | 128901 | 91bd3163fd237b2bd0bc99127fc25b4502f4526e17ac71a3df7c218e6b0798c0 |
lua-5.4.1-tests.tar.gz | 2020-09-30 | 128646 | 1b3792d083ea36396927b223903e364a91cb017ed3cc16f14add380353751161 |
lua-5.4.0-tests.tar.gz | 2020-06-18 | 126357 | f611d324ff71578d760b96f3199baaa67a806acbf90568d5d37cc99b0df938b7 |
lua-5.3.4-tests.tar.gz | 2016-12-22 | 103438 | b80771238271c72565e5a1183292ef31bd7166414cd0d43a8eb79845fa7f599f |
lua-5.3.3-tests.tar.gz | 2016-05-30 | 102562 | 13154abc20976196119db531b4169ce1ce511755879d40b4192e4173291287e5 |
lua-5.3.2-tests.tar.gz | 2015-11-25 | 101342 | 56909863a3713dee3709b3dbd0c868237e4f5c9ea1744f5bf0ba8bafa6c4ed32 |
lua-5.3.1-tests.tar.gz | 2015-06-10 | 99638 | 57b3230dcadd04feb680959975228fd4b5a56b91366b729bea2f537d26a0734a |
lua-5.3.0-tests.tar.gz | 2015-01-05 | 96995 | 0c1ff46bf7d950023a189e32a6ce3fe83bc2fbce28187cc9b38ba056c733b267 |
lua-5.2.2-tests.tar.gz | 2013-03-07 | 76629 | 07c1071c66d9cb4dc80200ed430fc21ebbbccf1f55148b87eb0b9522932e4eb6 |
lua-5.2.1-tests.tar.gz | 2012-07-02 | 76093 | 2346d635ee392c8d8024b07beaa10b7b66a3f861c41d575753d03155751cf114 |
lua-5.2.0-tests.tar.gz | 2011-12-12 | 75065 | a674018a197fa65954de0c3e8f68621c183c405a338c817d4d9d932efe14b2cf |
lua5.1-tests.tar.gz | 2016-01-18 | 55127 | 49e4ca6561f82ea605908c5041ab5fad66ed9930fa0686675bd51b02767f18ad |
在某个位置打开测试套件。您将看到一个名为lua-x.y.z-tests的目录,其中包含几个 .lua 文件和一些子目录。
要运行一些基础测试,请转到此目录并运行以下命令
path/lua -e"_U=true" all.lua确保运行您希望测试的 Lua 版本。如果您不确定,请运行lua -v并检查输出。如果版本号不匹配,您将必须提供一个明确的路径。
测试将打印许多不同的消息,但任何断言都不应失败。如果测试一直进行到最后,打印一条"final OK"消息,那么一切都正常。
请注意,Lua 本质上严重依赖于底层标准 C 库。有时测试套件会失败,因为这些底层 C 库不遵循 ANSI 标准。我们对此无能为力。
测试套件使用一些变量来控制某些测试的执行。通过定义全局变量 _U
(例如,在命令行中使用选项 -e"_U=true"
,如上文针对 基本测试 所做),套件会跳过不可完全移植且占用过多内存的测试。此选项还会禁止显示未执行的测试的消息。基本测试应可在未经更改编译 Lua 的任何系统中无问题地运行。
完整测试套件(即,不带 _U
选项)会尝试测试语言、其库和 C API 的每个角落,甚至系统相关的角落。与 Lua 本身不同,这些测试并不以可移植性、小内存占用或易用性为目标。其主要目标是尝试让 Lua 崩溃。它们不适用于一般用途。欢迎使用它们,但请做好弄脏手的准备。
要运行完整套件,首先确保您的测试目录有子目录 libs/
和 libs/P1/
,然后转到子目录 libs/
,并使用提供的 makefile(或系统中的等效文件)在此处构建 C 库。现在,您可以尝试通过在顶级测试目录中运行以下命令来运行完整测试套件
path/lua all.lua再次确保您运行的是正确的 Lua 版本。
如果您第一次尝试时它不起作用,请不要担心。(这就是为什么会有 _U
选项。)您可能需要针对您的系统调整一些小细节。以下是可能出错的一些事项
tmpnam
返回的文件名无法打开或无法以写入模式打开;
package.loadlib
;请参见测试 attrib.lua
);
os.execute
中的命令处理器的非常规语法。
对于更难的测试,测试套件使用一个特殊库 testC,该库允许访问 Lua 中的多个内部结构。此库仅在以调试模式编译 Lua 时可用,如下所述。
如果您想运行这些内部测试,请将 ltests.c
和 ltests.h
从 ltests
目录复制到包含源 Lua 文件的目录,并使用选项 -DLUA_USER_H='"ltests.h"'
(或其等效项,将 LUA_USER_H
定义为字符串 "ltests.h"
,包括引号)重新编译 Lua。此选项将添加 testC 库并启用其他几个内部测试。重新编译后,像以前一样运行测试。同样,预计会遇到困难。
祝您好运!