前回の紹介記事はこちら→「ブログズミ: [CI] Rocro 使ってみた」
今回は前回試してみたときからパワーアップしたところを紹介しつつ、設定したところも紹介します。
前回との差分
public リポジトリが扱えるようになった!
まずはこれですね。前回は private リポジトリのみだったので、Bitbucket に private なリポジトリを作って試していましたが、これで本格運用に入れます!Cppcheck の結果が集計されるようになった
前回使ったときは、Cppcheck の結果はログからみる必要がありましたが、現在は他のツールと同じように集計されて見やすくなってます。ファイルグレードが表示されるようになった
続いて目に入る変化としてファイルグレードがあります。以下のようにレポートに表示されるようになってました。
これは解析結果からファイルを「Grade A」~「Grade F」に評価したもののようです。
指標の1つとして使えそうです。
バッジにファイルグレード版が追加されました
最後に、ファイルグレードの結果がバッジとして使えるようにもなってました。こちらは通常のバッジと同じく、「Settings」にある「Badges」から使うことができます。
rocro.yml に Cppcheck の設定を書く
Cppcheck の解析結果が表示されるようになりましたが、インクルードパスなど適切に設定しないとあまり意味のないものになってしまします。ツールなどへの設定は rocro.yml で指定できるようなので、設定してみました。
参考:Cppcheck · INSPECODE
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
inspecode: | |
cppcheck: | |
options: | |
--enable: all | |
-I: include | |
-D: | |
IUTEST_HAS_CLOCK=1 | |
_WIN32=1 | |
_MSC_VER=1700 | |
-U: | |
__GNUC__ | |
__clang__ | |
__CYGWIN__ | |
__APPLE__ | |
--platform: win64 | |
--inline-suppr: | |
--suppress: | |
syntaxError | |
--max-configs: 20 | |
#--force: | |
ignore: | |
test/spi_tests_decl.cpp | |
thresholds: | |
num-issues: | |
#information: 0 | |
style: 0 | |
performance: 0 | |
portability: 0 |
ほかにも環境変数などの設定もできるようですが、まだ「EXPERIMENTAL」、実験中みたいです。
使ってみて気になったこと
- --force オプションつけるとタイムアウトしてしまう
-D/-U オプションで解析ブランチを減らすか、--max-configs で深さを指定することで回避するしかなさそう
- 並列オプションが使えない
-j オプションほしいですね。
- suppress に syntaxError を指定したが一部の除外されないものがある
これは Rocro 側ではなく cppcheck の問題だと思います。(ローカル環境でもそうだったので)
syntaxError で報告されてるけど、内部的にエラーIDが異なってたりするのだろうか?
- ログの詳細がみたい。Cppcheck の解析中のログも見れたら設定の参考にできるな、と思った。
最後に
iutest での本格運用を開始しましたし、まだ使っていないツールもあるので、またノウハウが蓄積したらブログにしたいと思ってます。
Supported Tools · INSPECODE
scan-build があるから Semaphore から Rocro に引っ越しできそう
Rocro のさらなる進化に期待してます。
今回は以上です。では。