这是一个分为两部分的系列博客的第一篇。Codethink 受主权科技基金委托改进systemd的测试基础设施。
- systemd 的现有集成测试套件:除了与代码一起保存在
src/test
中的单元测试和特定领域的测试,如网络测试,还有一系列集成测试配置在与test/TEST-??-*
匹配的目录中。运行集成测试的方式在test/README.testsuite
中描述,Makefile
运行test.sh
脚本,通过循环挂载格式化磁盘映像和复制文件来构建系统映像,test.sh
脚本可以添加文件到磁盘映像,test/units
中的内容也包含在测试系统中,通过传递额外的内核命令行选项来选择要运行的测试,测试结果通过写入/
来处理。 - 现有测试套件的不足:Makefiles 是残留的,
test.sh
脚本维护困难,循环挂载需要 root 权限,从主机二进制文件构建和使用主机 initramfs 需要大量的分发定制,通过-append
传递参数仅在使用 QEMU 启动时可用,通过/success
文件检查结果需要 root 权限且可能丢失日志,test/run-integration-tests.sh
脚本仅支持顺序运行测试。 - 未来工作:Codethink 与 systemd 和 STF 合作制定了彻底改革测试套件的计划,并在第二部分中详细介绍了新集成测试套件的架构。
- 主权科技基金:支持开发、改进和维护开放数字基础设施,目标是可持续地加强开源生态系统,注重安全、弹性、技术多样性和代码背后的人。
总之,systemd 有全面的集成测试套件但存在问题,通过 STF 资助提供了改进机会,后续将深入探讨新测试套件的架构等内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。