Linux カーネルのテスト

って、どうやっているんだろうと日々思う。

Ship it! にも書いてあるが、テスト重要とか、テスト自動化とか、細かくテストとか。その重要性っていうのは、わかっているつもりだ。

けど実際の自分の仕事って、カーネル空間でごにょごにょするお仕事をしているんだけど、機能追加とかするときに、テストに対してすごくこまっている。単体テストしようとするにも、動かすにはカーネルにロードしないといけないし。機能追加したら、その機能のテストと当然回帰テストをしなくてはいけないわけで、すごく時間におわれている

そう考えると、実際のカーネル開発者たちって、どうやってテストをしているんだろう。git の bisect でバグが入り込んだ版数を特定しやすいというのは知っているんだけど、ではどういうテストをやっているんだろう。print デバッグはいけないといわれていても、つい最近の版数まで、デバッガ嫌いのリーナスが拒否して、カーネル自体にデバッガがはいっていなかったわけだし。

あれだけ、ドラスティックに変わるカーネルだから、動いていれば ok とか、そういうレベルなんだろうか?

一度、カーネル開発に携わっている人のそういうお話を聞いてみたいなー。