diffコマンドはファイルの比較結果が一致していると何も表示せずに終わるタイプのコマンドです。その結果何が起こるかというと、自動テストコードのファイル比較処理で実行ログ上何も記録が残らず、
- 比較処理自体を書き忘れてはいないか
- 比較元も比較先も生成に失敗した結果両方0バイトなのを成功として通してしまっていないか
などといった不安感の漂う成果物となったりするわけです。
こんなvdiff
(Verbose DIFF)コマンドを用意してみてはいかがでしょう。
#!/usr/bin/env bash
diff\
<(tee <$1 >(echo 左側:`wc -l`行>&2)) \
<(tee <$2 >(echo 右側:`wc -l`行>&2)) &&\
echo 一致しました>&2
- 一致ならリザルトは0、それ以外なら>0
- 一致なら標準出力は汚さない
といったdiffコマンドの基本仕様はそのまま、左右ファイルの行数と、成功した場合は「一致しました」のメッセージを標準エラー出力に出してくれます。
process substitutionという記法を用いているのでshでは動きません。bashかzshで使ってください。