LLVM:测试基础(一),llvm-lit、FileCheck
文章来自微信公众号“科文路”,欢迎关注、互动。转发须注明出处。
前期的 MLIR 系列文章中,没有介入测试工作。测试本身也是一个比较大的主题,这里希望用几篇文章讲明白如何利用 LLVM 的基础设施完成所编写代码的测试工作。
本文为第 1 期,将使用一个例子介绍如何使用 llvm-lit 和 FileCheck 这两个最常用的工具完成测试工作。
- llvm-lit,LLVM Integrated Tester,通过 Python 语法编写配置文件,完成对某个项目的测试工作
- FileCheck,一个比 grep 功能更多的文本查找与匹配验证工具,可以帮助程序员确认代码是否正确生成
这两个工具都可以通过 pip
安装,分别叫 lit
和 filecheck
。如果使用了 pip
安装,下面的相关工具名请自行更改替换。
关于两个工具的更多使用细节请自行前往相关网站。
下面用一个小例子说明如何使用这两个工具,
文件结构
1 | . |
main.c
首先编写一个待测试的文件,
1 | // RUN: cc %s -o %t && %t | FileCheck %s |
在测试文件的顶部加入了待 llvm-lit 去驱动执行的标记以及待执行代码。
很简单,通过 cc
编译当前文件 %s
为一个临时文件 %t
,然后执行这个 %t
,最后通过 FileCheck
去和原文件中的 CHECK
标记的语句对比,看是否符合预期。
lit.cfg
接下来编写配置文件,
1 | import lit.formats |
这里也比较简单,就说明了测试项目的名称、类型、对应文件类型。
运行
在这两个文件的所在目录,执行
1 | ❯ llvm-lit main.c |
可以看到,这一个测试用例通过了。
结语
当然,这只是一个很简单的例子。但在更复杂的工程中,他们同样能发挥很好的作用。下期继续介绍如何在一个 cmake 项目中引入 LLVM 测试套件完成测试。
~~
都看到这儿了,不如关注每日推送的“科文路”、互动起来~
至少点个赞再走吧~
LLVM:测试基础(一),llvm-lit、FileCheck