1. 简介
Piglit是用来测试OpenGL实现的自动化测试集合。它的目标是通过为开发人员提供执行回归测试的简单方法来帮助提高开源OpenGL驱动程序的质量。它包含Glean测试,一些从Mesa改编的测试以及一些针对某些bug的特定回归测试。
官方git仓库位于:git://anongit.freedesktop.org/git/piglit
2. 获取源码
git clone https://gitlab.freedesktop.org/mesa/piglit.git
3. 编译
piglit运行的脚本在piglit项目top路径下,所以cmake需要在top路径下运行。
cmake .
make -j8
4. 运行
运行测试使用如下命令:
./piglit run sanity results/sanity
其中sanity是指定运行的测试集,results/sanity指定结果存放路径。
piglit中有如下的测试集:
OpenGL 测试集
- sanity.py:包含最少的OpenGL健全性测试。这些测试必须通过,否则其他测试将不会生成可靠的结果。
- all.py:包含所有OpenGL测试。
- quick.py:运行所有测试,但大大减少了它们的运行时间
- gpu.py:从quick.py进一步减少了一组测试,该测试仅针对硬件功能运行测试,而不针对软件堆栈运行测试
- llvmpipe.py:减少了gpu.py的一组测试,删除了使用llvmpipe有问题的测试
- cpu.py:此配置文件运行不会影响gpu的测试,换句话说,quick.py中所有不是gpu.py运行的测试
- glslparser.py:仅运行all.py中的glslparser测试
- shader.py:仅运行all.py中着色器测试
- no_error.py :测试列表的修改版本以khr_no_error变体形式运行
OpenCL 测试集
- cl.py:包含所有OpenCL测试。
- quick_cl.py:这将运行cl.py中的所有测试以及opencv和oclconform中的测试。
Vulkan 测试集
- vulkan.py:包含所有Vulkan测试。
5. 查看结果
查看上面测试生成的结果使用如下命令:
./piglit summary html summary/sanity results/sanity
将会在summary/sanity/
目录下生成一个结果的html
文件:
firefox summary/sanity/index.html
测试结果会包含的状态如下:
- pass: 表示测试成功完成
- warn: 测试成功完成,但是发生了意外情况。可以查看详细信息以获取更多信息
- fail: 表示测试失败
- crash: 表示测试用例的二进制退出码为非0
- skip: 表示测试跳过
- timeout: 表示测试超时并被强制杀死
网友评论