这是 lit-3.6 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
lit - LLVM 集成测试器
概要
床 [选项[测试]
商品描述
床 是一个用于执行 LLVM 和 Clang 风格测试套件的便携式工具,总结了它们的
结果,并提供故障指示。 床 被设计成一个轻量级的
具有尽可能简单的用户界面的测试工具。
床 应该与一个或多个一起运行 测试 在命令行上指定运行。 测试可以
可以是单独的测试文件或目录来搜索测试(请参阅 测试 发现).
每个指定的测试都将被执行(可能并行),并且一旦所有测试完成
已运行 床 将打印有关通过或失败的测试数量的摘要信息
(见 测试 状态 成果)。 该 床 程序将以非零退出代码执行(如果有)
测试失败。
默认情况下 床 将使用简洁的进度显示并且只会打印摘要
测试失败的信息。 看 OUTPUT 配置 对于控制选项 床
进度显示和输出。
床 还包括许多用于控制测试执行方式的选项(特定于
功能可能取决于特定的测试格式)。 看 执行 配置 更多
信息。
最后, 床 还支持仅运行选项子集的附加选项
在命令行中指定,请参阅 选择 配置 获取更多信息.
感兴趣的用户 床 架构或设计一个 床 测试实施应该
看到 LIT 基础设施.
一般 配置
-H, - 帮帮我
显示 床 帮助信息。
-j N, --线程=N
运行 N 并行测试。 默认情况下,这会自动选择以匹配
检测到的可用 CPU 的数量。
--config-prefix=名称
寻找 您的姓名.CFG 和 您的姓名.站点.cfg ,尤其是 搜索 test 套房, 代替 of
点亮配置文件 和 点燃的.site.cfg.
--参数 NAME, --参数 NAME = VALUE
添加用户定义的参数 您的姓名 与给定的 VALUE (如果不是,则为空字符串
给)。 这些参数的含义和用途取决于测试套件。
OUTPUT 配置
-q, - 安静的
抑制除测试失败以外的任何输出。
-是的, --简洁
显示较少的输出,例如不显示有关通过的测试的信息。
-v, --详细
显示有关测试失败的更多信息,例如整个测试输出
只是测试结果。
--无进度条
不要使用基于诅咒的进度条。
--show-不支持
显示不受支持的测试的名称。
--show-x失败
显示预期会失败的测试名称。
执行 配置
--path=路径
指定一个额外的 PATH 在测试中搜索可执行文件时使用。
--vg 在 valgrind 下运行单独的测试(使用 memcheck 工具)。 这
--错误退出代码 使用 valgrind 的参数,以便 valgrind 失败将导致
程序以非零状态退出。
启用此选项后, 床 还将自动提供“瓦尔格林德"
可用于有条件地禁用(或预期失败)某些功能的功能
试验。
--vg-arg=ARG
什么时候 --vg 使用,指定一个额外的参数传递给 瓦尔格林德 本身。
--vg-泄漏
什么时候 --vg 使用,启用内存泄漏检查。 启用此选项后, 床
还将自动提供“VG_泄漏" 可用于的功能
有条件地禁用(或预期失败)某些测试。
--时间测试
跟踪单个测试执行所需的时间,并将结果包含在
摘要输出。 这对于确定测试套件中的哪些测试很有用
花费最多的时间来执行。 请注意,此选项最适用于 -j 1.
选择 配置
--最大测试=N
最多运行 N 测试然后终止。
--最大时间=N
最多花费 N 秒(大约)运行测试然后终止。
--洗牌
以随机顺序运行测试。
附加 配置
-调试
运行 床 在调试模式下,用于调试配置问题和 床 本身。
--展示套房
列出发现的测试套件并退出。
--显示测试
列出所有发现的测试并退出。
退出 状态
床 如果有任何 FAIL 或 XPASS 结果,将以退出代码 1 退出。 除此以外,
它将以状态 0 退出。其他退出代码用于非测试相关的失败
(例如用户错误或内部程序错误)。
测试 发现
输入传递给 床 可以是单独的测试,也可以是整个目录或
要运行的测试的层次结构。 什么时候 床 启动,它做的第一件事就是转换
输入到作为测试的一部分运行的完整测试列表中 test 发现.
在 床 模型,每个测试都必须存在于某个 test 套房. 床 解决输入
在命令行上指定通过从输入路径向上搜索来测试套件
直到它找到一个 点亮配置文件 or 点燃的.site.cfg 文件。 这些文件既是测试的标记
套件和作为配置文件 床 加载以了解如何查找和
在测试套件内运行测试。
一旦 床 已将输入映射到测试套件中,它遍历添加的输入列表
测试单个文件并递归搜索目录中的测试。
这种行为使得指定要运行的测试子集变得容易,同时仍然允许
测试套件配置以准确控制测试的解释方式。 此外, 床
始终通过它们所在的测试套件以及它们在测试套件中的相对路径来识别测试
测试套件。 对于适当配置的项目,这允许 床 提供方便
以及对树外构建的灵活支持。
测试 状态 成果
每个测试最终会产生以下六个结果之一:
PASS
测试成功。
失败
测试失败,但这是意料之中的。 这用于允许的测试格式
指定测试当前不起作用,但希望将其留在测试套件中。
XPASS
测试成功了,但预计会失败。 这用于测试
指定为预期失败,但现在成功(通常是因为功能
他们的测试被破坏并已修复)。
失败
测试失败。
未解决
无法确定测试结果。 例如,当测试可以
不能运行,测试本身无效,或测试被中断。
不支持
此环境不支持该测试。 这是由测试格式使用的,它可以
报告不受支持的测试。
根据测试格式测试可能会产生有关其状态的其他信息
(通常仅用于失败)。 见 OUTPUT 配置 部分了解更多信息。
LIT 基础设施
本节描述了 床 为有兴趣创建新的用户的测试架构
床 测试实现,或扩展现有的实现。
床 适当的主要是发现和运行任意测试的基础设施,和
向这些测试公开一个方便的接口。 床 自己不知道怎么跑
测试,而不是这个逻辑是由 test 套房.
测试 SUITES
如上所述 测试 发现, 测试总是位于一个 test 套房. 测试套件
用于定义它们包含的测试的格式,查找这些测试的逻辑,
以及运行测试所需的任何其他信息。
床 将测试套件标识为包含 点亮配置文件 or 点燃的.site.cfg 文件(见
还 --config-前缀)。 测试套件最初是通过递归搜索发现的
在命令行上传递的所有输入文件的目录层次结构。 您可以使用
--展示套房 在启动时显示发现的测试套件。
一旦发现测试套件,就会加载其配置文件。 配置文件本身是
将被执行的 Python 模块。 执行配置文件时,有两个重要的
全局变量是预定义的:
点亮配置
全球 床 配置对象(一个 点亮配置 实例),它定义了内置
测试格式、全局配置参数和其他帮助程序
实施测试配置。
配置
这是配置对象(一个 测试配置 实例)用于测试套件,其中
预计会填充配置文件。 以下变量也可在
配置 对象,其中一些必须由配置设置,其他是可选的或
预定义:
姓名 [必需的] 测试套件的名称,用于报告和诊断。
测试格式 [必需的] 将用于发现和运行的测试格式对象
测试套件中的测试。 通常,这将是一个内置的测试格式,可从
此 点亮格式 模块。
测试源根目录 测试套件根的文件系统路径。 对于目录外构建
这是将被扫描以进行测试的目录。
测试执行根 对于目录外构建,对象内测试套件根的路径
目录。 这是运行测试和放置临时输出文件的地方。
环境 代表在执行测试时使用的环境的字典
套房。
后缀 针对 床 扫描目录进行测试的测试格式,此变量是一个列表
后缀来识别测试文件。 使用人: 测试.
换人 针对 床 将变量替换为测试脚本的测试格式,
要执行的替换列表。 使用人: 测试.
不支持 标记一个不受支持的目录,其中的所有测试都将报告为
不支持。 使用人: 测试.
亲 父配置,这是包含目录的配置对象
测试套件,或无。
根 根配置。 这是最顶级的 床 项目中的配置。
管道故障 通常,如果管道上的任何命令,使用 shell 管道的测试将失败
失败。 如果不需要,将此变量设置为 false 只会使测试失败
如果管道中的最后一个命令失败。
测试 发现
一旦找到测试套件, 床 递归遍历源目录(如下
测试源根目录) 寻找测试。 什么时候 床 进入一个子目录,它首先检查
查看该目录中是否定义了嵌套测试套件。 如果是,则加载该测试套件
递归地,否则它会实例化目录的本地测试配置(请参阅 局部
配置 FILES).
测试由它们所包含的测试套件和相对路径来标识
那间套房内。 请注意,相对路径可能不是指磁盘上的实际文件;
一些测试格式(例如 谷歌测试) 定义具有路径的“虚拟测试”
包含实际测试文件的路径和用于标识虚拟测试的子路径。
局部 配置 FILES
什么时候 床 在测试套件中加载子目录,它实例化本地测试配置
通过克隆父方向的配置---此配置的根
chain 永远是一个测试套件。 克隆测试配置后 床 检查一个
点燃的.local.cfg 子目录中的文件。 如果存在,此文件将被加载并且可以
用于专门为每个单独的目录配置。 这个设施可以
用于定义可选测试的子目录,或更改其他配置
参数 --- 例如,更改测试格式,或标识测试的后缀
文件。
测试 跑 OUTPUT FORMAT
床 测试运行的输出符合以下架构,无论是简短的还是详细的
模式(尽管在短模式下不会显示 PASS 行)。 已选择此架构
相对容易被机器可靠地解析(例如在 buildbot 日志中
抓取),并用于其他工具生成。
每个测试结果都应该出现在匹配的行上:
: ( )
哪里 是标准测试结果,例如 PASS、FAIL、XFAIL、XPASS,
未解决,或不支持。 IMPROVED 和 REGRESSED 的性能结果代码为
也允许。
<测试 姓名> 字段可以由不包含换行符的任意字符串组成。
<进度 信息> 字段可用于报告进度信息,例如 (1/300) 或
可以为空,但即使为空也需要括号。
每个测试结果可能包括以下附加(多行)日志信息
格式:
测试 '( )'
... 日志消息 ...
哪里 <测试 姓名> 应该是之前报告的测试的名称, <日志 轮廓线> 是一个
一串“*”字符 at 最少 四个字符长(推荐长度为 20),以及
<尾随 轮廓线> 是一个任意的(未解析的)字符串。
以下是测试运行输出的示例,其中包含四个测试 A、B、C 和
D,以及失败测试 C 的日志消息:
通过:A(1 个中的 4 个)
通过:B(2 个中的 4 个)
失败:C(3 个中的 4 个)
******************** 测试“C”失败 ********************
由于退出代码 1,测试“C”失败。
********************
通过:D(4 中的 4)
LIT 例 试验
床 发行版包含几个测试套件的示例实现
示例测试 目录。
使用 onworks.net 服务在线使用 lit-3.6