4.6. 关于测试套件

多数软件包提供测试套件,一般来说,为新构建的软件包运行测试套件是个好主意,这可以进行一次 完整性检查,从而确认所有东西编译正确。如果测试套件中的所有检验项目都能通过,一般就可以证明这个软件包像开发者期望的那样运行。然而,这并不保证软件包完全没有错误。

某些软件包的测试套件比其他的更为重要。例如,组成核心工具链的几个软件包 — GCC、Binutils 和 Glibc 的测试套件就最为重要,因为这些软件包在系统的正常工作中发挥中心作用。GCC 和 Glibc 的测试套件需要运行很长时间,特别是在较慢的硬件上,但我们仍然强烈推荐运行它们。

[注意]

注意

第 5 章第 6 章中不可能运行测试套件,因为这些程序是使用交叉编译器编译的,根本不该在构建它们的宿主系统运行。

在运行 Binutils 和 GCC 的测试套件时,最普遍发生的问题是伪终端 (PTY) 被耗尽。这会导致大量测试出现失败结果。这种现象有多种可能原因,但最常见的原因是宿主系统没有正确设置 devpts 文件系统。关于这个问题的更多细节在 https://www.linuxfromscratch.org/lfs/faq.html#no-ptys 中进行了讨论。

一些软件包的测试套件总是失败,但开发者已经知道失败原因,并判定这些失败并不重要。参照 https://www.linuxfromscratch.org/lfs/build-logs/development/ 中的构建日志,来检查这些失败是否符合预期。本书中的所有测试都可以在该网址查询。