テストコードの中でruntime.GOOSを参照して実行しないコード片を判断するのは小さな間違い

ファイルパーミッション000 にして、読み取りできない場合をテストするコードがあった。 こういうやつ。

file_operation_test.go

WindowsファイルシステムNTFS)では意図したようにパーミッションを変更できないため、このテストは失敗してしまう。

普通ならbuild constraintを使うのが一番よさそう。 つまり環境依存するコード片を file_operation_test_windows.go みたいに分離する。

ただ、この時はファイルを分割するのが面倒だったので、runtime.GOOS を見てスキップさせることにした。 無駄に読みにくくなるのでやるべきじゃないな。

file_operation_test2.go