最近、1つのレガシープログラムにユニットテストを追加する必要があります。多くのマクロを持つプログラムのユニットテスト
は、しかし、それには、現在、一般的なプログラムのパスはユニットテストでカバーされている
#ifdef CONFIG_XXX
do xxx
#endif
#ifdef CONFIG_YYY
do yyy
#endif
のように、マクロがたくさんあります。だから、私は内部マクロ部分(異なるプログラムのパス)をカバーするためのテストを追加したい。
私はいつも特定のマクロで自分のプログラムをコンパイルして実行する必要があり、プログラムパスをカバーしコンパイル時間を短縮するマクロの構成を設計するのは本当に簡単ではないようです。
ハードウェア関連のコードをすべてarchフォルダに移動する予定です。マクロはcファイルからmakefileに移動されましたが、UTを実行するたびに特定のマクロをコンパイルする必要があります。
誰もこの問題について以前に経験したことはありますか?
ご意見ありがとうございます。
'if(config.XXX)'で各マクロを置き換えることを検討できますか?そうすれば、再コンパイルする必要がなくなります。 –
マクロとif文の違いから私はできません。 –
私が言っているのは、あなたのコードを 'config'構造体を入力とするようにリファクタリングすることです。この構造体には、それぞれがマクロの1つに対応する一連のフラグ変数を持つことができます。 –