今日はあるモジュールのUTというか、非常に簡単なメッセージの出力確認でした。
ある関数にインタフェースとして、呼び出し元のモジュール名を追加したので、
実行先でエラーになった場合にきちんとメッセージが出力されているかどうか
確認するという内容としては簡単なものです。
※イメージ
main.c
--------------------------------------------------------------------------
ap_name="main";
sub(ap_name, str1, num1....);
--------------------------------------------------------------------------
sub.c
--------------------------------------------------------------------------
void sub(char *str,char *str1,int *num.....){
if(error){
printf("エラー発生:%s%s%d",str,str1,num);
}
}
--------------------------------------------------------------------------
確認項目としては非常に単純ですが(該当するロジックまで処理を動かして、確認するだけ)、実際は非常に入り組んだ作りになっているため、その該当部分まで処理を動かすのがすごく大変。
大変なんだけど、大変なんだけど、絶対にやり方が間違っていると思う。
gdbを使って、ちまちま処理を動かしていったのだけれど、if分岐やらなんやらで
まともに処理が動かない。なので無理やり変数をいじって該当箇所まで近づけるのだけど、コマンドをミスるとまた最初からやり直し・・・!
結局10:30くらいから始めて、23:00までかかってまだ終わってないという。
実はこんな感じでUTに時間がかかるのは結構前からあったのです。
普通エンジニアなら、「どうやったら作業を簡単にできるか?」を考えると思うのですが、その感覚が僕には全く足りていない!
一応、該当モジュールのプロセスを起動して、該当箇所まで処理が動くようなパラメータ(電文)は存在するのですが、プロセスを起動して電文を投げてもgdbが動かなかったので諦めて力技に頼ってしまったのがそもそも間違いなんです。
あーーー死にたい!