メモの日々


2006年09月26日(火) [長年日記]

  • ずっと仕様検討中。他のメンバーの進捗が進んでいないのでおれはわりと暇。

[c][soft][unix] LCOVを使ってカバレッジを測定

LCOVというツールを使うとカバレッジを測定して結果をHTMLファイルに出力してくれるみたい。結果ファイルのイメージはlcov を利用したコードカバレッジ解析にある感じ。

あまり情報を見つけられなかったが、Just another Ruby porter, の2004-04-132004-04-14などを参考にして使ってみた。バージョンは1.4。

対象ファイルのコンパイル

コンパイルはGCCを使って行う必要がある。コンパイル時にはオプションとして「-fprofile-arcs -ftest-coverage」を付与する。こうすると、xxx.o ファイル以外に xxx.gcno というファイルもできるようだ。

なお、カバレッジを測定するファイルと測定しないファイルをリンクする際にも上記のオプションが必要みたい。

実行

コンパイルしたプログラムを実行して終了させる。すると、xxx.gcda というファイルができる。

カバレッジ情報の収集

lcovコマンドを使う。

$ lcov -c -d . -o app.info

のような感じ。-cはカバレッジ情報を収集せよ、-dは指定したディレクトリから収集せよ、-oは指定したファイルに結果を出力せよ、という意味のようだ。サブディレクトリからも情報を収集しているようだが、この辺の挙動は把握できていない。

上を実行するとapp.infoに結果が出力されるが、これには余分なヘッダファイルに関する情報も含まれてしまっていた。余分な情報を削除するには

$ lcov -r app.info *yobun* -o app2.info

のようにするといいみたい。-rは指定したファイルから指定したパターンを削除せよ、という意味かな。

HTMLファイルの生成

genhtmlコマンドを使う。

$ genhtml -o lcovoutput -p `pwd` --num-spaces 4 -f app2.info

のようにした。-oは指定したディレクトリに結果を出力せよ、-pはよくわからんがここで調節しないと生成されたHTMLファイル内のリンクがうまく繋がらなかったりした、--num-spacesはタブを指定した数分のスペースに変換せよ、てな意味。-fを付けるとソースファイルの内容を表示した際にそのファイルの全体イメージが表示されるようになる。

やること

  • デザイン変更
  • 保険
  • 蛍光灯
  • 家賃