4.6. 关于测试套件

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

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

[注意]

注意

经验表明,在 第 5 章 中运行测试套件几乎没有意义。在这一章中, 我们无法绝对避免宿主系统对测试过程的影响, 这往往导致不可避免的失败结果。再加上由于 第 5 章 中的工具是临时的, 最终会被丢弃,我们不建议一般读者在 第 5 章 中运行测试套件。 尽管我们为测试人员和开发人员考虑,提供了运行这些测试套件的方法, 但它们绝对不是必须运行的。

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

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