非同期に書き込まれている io.Writer の内容をデータ競合させずに読みたい
tl;dr io.Pipe を使う モチベーション goroutine で無限ループさせながら特定の io.Writer に書き込むようなコードがあった時、テストで正しく書き込まれているか知りたいことがある。 しかしよくテストで使われる bytes.Buffer を利用すると、内部のバッファを取り合う形になってしまうのでデータ競合が発生する。 例えば以下のようなコード 被テス
Read more