改进 systemd 的集成测试基础设施(第 1 部分)

这是一个分为两部分的系列博客的第一篇。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 资助提供了改进机会,后续将深入探讨新测试套件的架构等内容。

阅读 13
0 条评论