10分钟精通openeuler/compiler-test:GCC测试用例执行与结果分析
【免费下载链接】compiler-testCompiler-test repo contains functional test suites for two components: gcc and openjdk, including dejagnu, jtreg, etc项目地址: https://gitcode.com/openeuler/compiler-test
前往项目官网免费下载:https://ar.openeuler.org/ar/
openEuler / compiler-test是一个功能强大的测试套件仓库,专为GCC和OpenJDK两大核心组件提供全面的功能测试支持,包含dejagnu、jtreg等多种测试框架。本文将带你快速掌握如何使用该项目进行GCC测试用例的执行与结果分析,让你在10分钟内轻松上手。
📋 准备工作:环境搭建与项目获取
要开始使用openeuler/compiler-test进行GCC测试,首先需要获取项目代码并安装必要的测试工具。
1. 克隆项目仓库
使用以下命令将项目克隆到本地:
git clone https://gitcode.com/openeuler/compiler-test2. 安装DejaGnu测试框架
DejaGnu是GCC测试中常用的框架,安装步骤如下:
- 下载DejaGnu源码包:http://mirrors.ustc.edu.cn/gnu/dejagnu/dejagnu-1.6.1.tar.gz
- 解压并安装:
tar -zxvf dejagnu-1.6.1.tar.gz cd dejagnu-1.6.1 ./configure --prefix=$install_deja && make -j && make install- 配置环境变量:
export PATH=$install_deja/bin:$PATH3. 获取GCC测试用例
下载GCC源码包以获取测试用例:
wget https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz tar -zxvf gcc-9.3.0.tar.gz测试用例位于解压后的gcc-9.3.0/testsuite目录下。
🚀 快速执行:GCC测试用例运行指南
配置好环境后,就可以开始执行GCC测试用例了,根据需求选择不同的执行方式。
执行单个测试用例
在GCC测试用例目录下,找到目标用例(如split-path-10.c)及其对应的.exp文件(如tree-ssa.exp),执行以下命令:
runtest --tool gcc tree-ssa.exp=split-path-10.c执行单个测试套件
若要执行某个.exp文件下的所有用例,使用:
runtest --tool gcc tree-ssa.exp执行所有GCC测试用例
执行GCC的全部测试用例:
runtest --tool gcc执行G++测试用例
如果需要测试G++,只需将工具指定为g++:
runtest --tool g++📊 结果解读:测试输出与日志分析
测试执行完成后,DejaGnu会生成相应的结果文件,帮助你分析测试情况。
测试结果类型
DejaGnu定义了多种测试结果状态,常见的有:
- PASS:测试结果正确,用例成功
- FAIL:测试结果错误,用例失败
- XFAIL:预期用例执行错误,实际运行也执行错误,测试结果正确
- XPASS:预期用例执行错误但是成功,测试结果错误
- UNRESOLVED:测试结果不确定,需要人工判断
- UNTESTED:测试未执行
- UNSUPPORTED:当前环境不支持此用例执行
日志文件解析
测试执行后,会在当前目录生成两类文件:
- sum文件:只记录用例执行结果,简洁明了地展示各用例的状态
- log文件:详细记录了每个用例的执行过程,包括编译命令、输出信息等,便于问题定位
⚙️ 高级配置:site.exp文件自定义
site.exp文件是DejaGnu测试的重要配置文件,可以根据实际需求进行修改,以定制测试环境和参数。
site.exp文件生成
可以通过以下方式生成site.exp文件:
- 进入DejaGnu源码目录
- 执行:
./configure && make && make -j -k check- 将生成的site.exp文件拷贝到GCC测试用例目录
常用配置项
- 设置源码和目标目录:
set srcdir ./ set objdir ./ set tempdir ./- 添加编译选项:
set CFLAGS_FOR_TARGET "-mcmodel=medium"- 保留编译生成的文件:
set keep_file "YES"📝 总结
通过本文的介绍,你已经了解了openeuler/compiler-test项目的基本使用方法,包括环境搭建、测试用例执行、结果分析以及高级配置。这个强大的测试套件能帮助你高效地对GCC编译器进行功能测试,确保其在openEuler系统上的稳定性和可靠性。
如果你想进一步深入学习,可以参考项目中的相关文档:dejagnu使用说明、Jtreg和Jcstress使用说明,探索更多高级功能和测试场景。
【免费下载链接】compiler-testCompiler-test repo contains functional test suites for two components: gcc and openjdk, including dejagnu, jtreg, etc项目地址: https://gitcode.com/openeuler/compiler-test
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考