背景
LLVMfuzzer とか CI に統合したい.
ClusterFuzzLite 使ってみます.
設定
自身の C/C++ アプリですでに fuzzer をする仕組みがあると仮定します.
- ローカルでビルドする設定をしておく
- Github actions を設定する(github actions を利用する場合)
でいけます!
とりあえず PR fuzzing(PullReq あったら fuzzer 走らせる)をやります.
ローカルでビルドする設定
Docker が必要です(ちょっとめんどいですね).
Docker の起動とか Docker 内のファイルコピーとかで 1 分くらいかかってしまうので, 非 Docker でスクリプト動作確認しておくとよいでしょう.
サンプル
TinyUSDZ の例を参照ください.
https://github.com/syoyo/tinyusdz/blob/dev/.github/workflows/cflite_pr.yml
(初期設定をコピペのみ)
Issues
Github actions だと, 結果が artifact file だけっぽいのできちんと動いたのか動かなかったのかわからないっぽい.
TODO
- Batch fuzzing など対応する
- 将来的に自社のサーバなどで動かす(マイニングなどで遊んでいる CPU で動かすなど)