Androidのテストケース名を日本語で書いていたら、error while writing ...$1.class (Permission denied...)と怒られた話

初見では分かりづらいエラーだったため、備忘録として残しています。

error while writing ...$1.class (Permission denied...)と怒られた

Androidのテストケース名を日本語で書いていた時、ローカルでは問題なく通るものの、GitHub ActionsのCI上でerror while writing ...$1.class (Permission denied...)と怒られてしまいました。

他の日本語で書かれているテストは問題なく成功しているのに、これだけ落ちるのはどういうことなんだ、、、と途方に暮れていましたが、メンバーの方から「文字数が多いとそのエラーが出るよ」と教えてもらいました。

android-guidelines/unit_test_guideline/unit_test_guideline.md at master · Trendyol/android-guidelines · GitHub

実際にテストケース名を短くしてみたところ、上記エラーは出なくなりました(初見で絶対分からん)。

ただ、これで終わりにするのも気持ち悪いのでもう少し調べておきます。

エラーの発生原因

stackoverflow.com

このページのコメント欄を見ると、Linuxのファイル名が最大255bytesまでであり、ファイル名またはファイル名 + パスがその上限に引っかかっているのではないかというやりとりがされています。

実際に自分が最初に書いたケース名を確認してみると、

HogeTest$<test name>$1.class

で260bytesとなっており、上記の話に当てはまりそうでした。