2014年7月15日火曜日

[C++] Coveralls でコードカバレッジ - その3 (lcov + lcoveralls)

前回、「Coveralls でコードカバレッジ - その2」でカバレッジ集計ができるようになったのですが、いつの間にかおかしな状態になってしまっていました。
なぜか CHANGED が 0 のままで前回との差分が見れなくなってしまいました。
ちょっとお手上げ状態なので、誰か助けてください。
と言うついでに、環境変えたら直るんじゃね?というとこから locv + lcoveralls に対応してみました。

lcov + lcoveralls に鞍替え
https://github.com/pcolby/lcoveralls
こちらに手順が書いてあるのでそのとおりに .travis.yml を編集します。
インストール
install:
  - sudo apt-get install lcov rubygems
  - gem install lcoveralls
ビルド ~ lcov
gcov のときと同様に -coverage オプションを付けてビルド、実行ファイルを実行します。
.gcda と .gcno が生成されるので、そこで
lcov -c -d . -o coverage.info
と実行する。
集計したくないファイルがある場合は、--remove(-r) オプションで削除します。
lcov -r coverage.info *gcc* -o coverage.info
lcoveralls
続いて、以下のコマンドを実行する。
lcoveralls coverage.info
今回は Travis CI 上で実行するので、token 指定は不要です。
もし、それ以外で実行する場合は --token オプションを指定する必要があります。

実行、結果
以上で設定は終わりです。実行すると以下のようにログが出力されます。

gcov + cpp-coveralls と比べて色付きログが出るの見やすい!
また、coveralls.io でちゃんと集計もされています。


が、やっぱり CHANGED は 0 のままで検出してくれませんでした。
しかたがないので、coveralls.io から一旦リポジトリを削除しました。

が、やっぱダメでした。

う~ん。困った。。。

2014/09/30 追記
issue 出てましたが、反応なし。
'source change' and 'coverage change' not detected · Issue #327 · lemurheavy/coveralls-public

2014年7月7日月曜日

Ask.fm を始めた

完全にネタ切れした。

最近 Ask.fm の回答ツイートを目にすることが多くなった気がします。流行ってるのか?
あまり興味はないんですが、ネタもないし始めてみました。
http://ask.fm/srz_zumix

まぁ、適当に答えます。

2014年7月1日火曜日

[Arduino] 電子回路設計ツール Fritzing

最近は Arduino と戯れていないのですが、
つい最近 Fritzing という電子回路設計ツールを知りました。

Arduino でググった時によく見る回路図がこのツールで書けます。
もっと早く知りたかった…

Fritzing Download

書いてみた
実際使って見たのですが、簡単操作でとっても良かったです。
いや~もっと早く知りたかった…orz



ただまぁ当然のことながら定義されていないパーツもあるわけです。
今回も、16x16 LED matrix と TD62783APG トランジスタアレイのパーツを作成しました。
パーツの作り方は割愛しますが、LED matrix のパーツ作りに手間取ったのでそこだけ書き残しておきます。

TD62783APG は同じような形のパーツを修正するだけでできましたが、LED matrix は 8x8 はあるものの 16x16 がなく、しかもピン数も異なっていたのでそこも変更する必要がありました。

ハマったところは、このコネクターピンを定義する部分です。id の命名にルールがあるようで、そこに気づかずかなりの時間を取られてしまいました…
そもそも、画像ファイルは .svg 形式なのですが、この編集にすら手こずりました… .svg 画像編集ソフトは inkscape を使いました。
画像編集にほとんど縁のない私ですが色々ポチポチやっているうちに、8x8 LED matrix の画像でコピペを駆使してブレッドボード用画像をなんとか作れるようにはなりました。

画像ができたのでコネクターを定義しようとおもいきや、svg のパスを D&D しても反応せず…
(Windows 版使ってるのですがツールのバグでしょうかねぇ…)


色々見てみた結果、.svg 画像の id 名で定義することがわかりました。
.svg ファイルはテキストデータ(xml)です。エディターで開いていただくと path やら g ノードに id 属性があると思います。これを "connectorXXpin" みたいな名前にすると認識してくれました。
(既存の .svg みると ***pad やら ***pin やらあるがそのへんはよくわからん)

id 名は inkscape の「オブジェクトのプロパティ」で変更できます。


これで画像が完成です。
(回路図、プリント基板用にも作る必要がありますが、今回はブレッドボードビューさえ出来てればOKなので割愛)
画像を読み込んでコネクタビューのコネクタリストにチェックがついていればOKです。





さて、イーサネットシールド買ってからほとんど何もしていないわけですが…


…暇になったらやります。