4.6. テストスイートについて

各パッケージにはたいていテストスイートがあります。 新たに構築したパッケージに対しては、テストスイートを実行しておくのがよいでしょう。 テストスイートは健全性検査 (sanity check)を行い、パッケージのコンパイルが正しく行われたことを確認します。 テストスイートの実行によりいくつかのチェックが行われ、開発者の意図したとおりにパッケージが正しく動作することを確認していきます。 ただこれは、パッケージにバグがないことを保証するものではありません。

テストスイートの中には他のものにも増して重要なものがあります。 例えば、ツールチェーンの要である GCC、Binutils、Glibc に対してのテストスイートです。 これらのパッケージはシステム機能を確実なものとする重要な役割を担うものであるためです。 GCC と Glibc におけるテストスイートはかなりの時間を要します。 それが低い性能のマシンであればなおさらです。 でもそれらを実行しておくことを強く推奨します。

[注記]

注記

作業を進めてみれば分かることですが、 第5章の作業においてテストスイートを実行することはあまり意味がありません。 というのも、この章において実施するテストに対しては、ホストシステムによるある程度の影響があるためです。 時には不可解なエラーが発生することもあります。 第5章にて生成するツール類は一時的なものであり、その後には利用しなくなります。 したがって普通のユーザーであれば 第5章においてはテストスイートを実行しないことをお勧めします。 テストスイートを実行する手順を説明してはいますが、それはテスターの方、開発者の方のために説明しているものであって、それらは全くのオプションです。

Binutils と GCC におけるテストスイートの実行では、擬似端末 (pseudo terminals; PTY) を使い尽くす問題が発生します。 これにより相当数のテストが失敗します。 これが発生する理由はいくつかありますが、もっともありがちな理由としてはホストシステムの devpts ファイルシステムが正しく構成されていないことがあげられます。 この点については http://www.linuxfromscratch.org/lfs/faq.html#no-ptys においてかなり詳しく説明しています。

パッケージの中にはテストスイートに失敗するものがあります。 しかしこれらは開発元が認識しているもので致命的なものではありません。 以下の http://www.linuxfromscratch.org/lfs/build-logs/7.8/ に示すログを参照して、失敗したテストが実は予期されているものであるかどうかを確認してください。 このサイトは、本書におけるすべてのテストスイートの正常な処理結果を示すものです。