そろそろ High Sierra リリースされるし、RubyKaigi 2017 も近いしまずい!!1と、なかなか筆が進まない発表準備の逃避で落ちるテストを直したり調査していた。
https://bugs.ruby-lang.org/issues/13816
一番最初に修正された TestDir_M17N#test_filename_extutf8_invalid
と TestDir_M17N#test_glob_encoding
については naruse さんが修正した APFS では invalid な文字でファイルを作成できないよってやつだけど、まだ二つ残っていたので続きを調べた。
TestFileExhaustive#test_atime
は、APFS がアクセスタイムを nano 秒まで保持するようになったことで、atime が微妙にずれて不一致となっているというやつ。
<2017-08-15 10:21:18 +0900> (795278193[ns]) expected but was
<2017-08-15 10:21:18 +0900> (801104909[ns]).
これは、「そうだね」以上のことはないので to_i
して秒のオーダーで比較するようにして押し通すことにした。次の TestFileExhaustive#test_expand_path
についてはこれは先の invalid な文字列のファイルが〜という内容と同じだったので、APFS の時は skip するようにした。
後、13816 を報告した時は発生しなかったけど、High Sierra Beta 9 + Xcode 9 GM だと TestVMDump#test_darwin_invalid_call
が以前に直した不具合が再発しているというのを見つけたので https://bugs.ruby-lang.org/issues/13895 で報告してから naruse さんとデバッグコードを埋め込みつつ調査などしていた。
結局、13895 もそれっぽく直ったので High Sierra でも Ruby のテストは全部動くようになった。めでたしめでたし。