書籍購入:『テスト駆動開発による組み込みプログラミング』

TDDへの興味は薄いのだけど、思うところがあって購入。

いや、TDDはしていないけど関数単位での単体テストが必須な環境で、自前のテスト用フレームワークもどきを使って反復的にテストできるようにしているので……。

実は、下回りのstatic関数をスタブに差し替える良いアイデアが無いか探していたのだけど……本書いわく、関数ポインタかマクロを使うしかないようだ。

関数ポインタを使うアイデアは悪くないのだけど、静的に関数呼び出しを解析できなくなる欠点がある。例えばHEWのCall Walkerあたりは静的な解析を元にコールスタックを計測できるのだけど、関数ポインタを使っている部分は手動で調整する必要がある。「手動で調整するとコールツリーのビューが全展開される」という謎の挙動と相まって、計測できなくはないけど非常に面倒で手間がかかる。

マクロを使う方法は――本書の方法だと、関数定義部分の名前まで置き換えられてしまう気がする。というかGCCではそうだった。他のコンパイラではどうなのだろう?

さしあたり、私の望むものは見つからなかった。とはいえ全体的には良さそうな本だ。後でゆっくりと読むことにしよう。