C言語のプロジェクトでユニットテストを

諸般の事情でC言語で書くことになったプロジェクトに、なんとしてもユニットテストを持ち込みたいと思っています。単体テストを自動化して繰り返し実行できるようにしたいのです。関数毎に、入力に対して出力をチェックする、というのはいいでしょ。構造体をグローバル変数として置くのは避けてせめてポインタからぶら下げるようにする、コラボレーターとのインタフェースとなる関数も、関数ポインタ経由でアクセスするようにする、ということができれば、差し替えできるんで好ましいんだけど、どうかな、ってな話をもちかけてみる予定。