取得できる情報が少ないかわりに、Packetbeatよりメモリリークが起こりにくくCPU使用率が低く抑えられるいい感じのPacket Analyzer/Shipperとして開発しているndffであるが、ndff v0.1からnDPIのAPIも仕様がそれなりに変更されていて、テストをきちんと書いておきたい...
それなりにコードに手を入れることになるため、ndffのリポジトリに直接手を入れず、一旦こちらの開発用リポジトリで開発を進める。修正箇所の修正が一段落したらマージを進める。
IPヘッダーの抽出、TCP/UDPヘッダの抽出、フローの集約など、ndffで実装する関数は原則として関数同士の依存が出来るだけない状態にしてユニットテストをtest.cppに書きましょう。
.cあるいは.cppがsuffixのファイルを更新するとninja testが走ります。docker run -itで動かし続けてテストを走らせながら開発を進めましょう。
$ docker build -t nkoneko/ndff-dev:latest -f develop/Dockerfile .
$ # ソースコードを適当に編集したら、次のコマンドでLinux上でビルドしてテストする。
$ docker run -it --rm --mount type=bind,src=$(pwd),target=/opt/ndff,readonly,consistency=cached nkoneko/ndff-dev:latest