大多数软件包提供了测试套件。编译完一个软件包之后立即运行一下它提供的测试程序是个好主意,因为测试程序将进行一次“健全检查”来确认所有的代码是否都正确编译了。通过了测试套件的一系列检查,通常意味着软件包在按照开发者的预期工作,但是这并不保证这个软件包就完全没有 bug 了。
某些软件包的测试程序是极为重要的,例如核心工具链软件包—GCC、Binutils、Glibc—的测试程序,这是因为这些软件包在一个良好工作的系统里的处于核心角色。GCC 和 Glibc 的测试程序需要运行很长时间,尤其在速度慢的硬件上,但我们仍然强烈建议您运行这些测试程序。
经验显示,运行第五章的测试套件收获很小。宿主系统会不可避免的对该章中的测试造成影响,经常会有不能解释的错误。因为第五章中编译的工具是临时的,会最终被丢弃,因此我们推荐一般水平的读者不需再做该章的测试。这些测试程序的指令是为开发和测试人员准备的,它们不是必需的。
Binutils 和 GCC
的测试程序一个常见的问题就是没有可用的伪终端(PTY),这样可能会出现大量的测试失败。可能的原因有几个,但最可能的原因是宿主系统没有正确的设置好
devpts
文件系统,这个问题会在第五章详细讨论。
某些软件包测试程序可能会出错,但是开发者了解到这些,这些出错关系不是很大。请参考 LFS Wiki(地址为http://www.linuxfromscratch.org/lfs/build-logs/6.4/)查看这些出错是否在预料之中。这个站点的内容适用于本书所有的测试。