2021-12-27: 再現性チェックを実装した
やったこと
RTA in Japan
昨日からはじまっていたので見ていた。
ロボットのやつとかすごかった。あれ動かせる状態で持ってる人いるんだな。
あとテトリス。テトリスは人を狂わせる。間違いない。
ReDoS
再現性チェックの PR をマージした。
とりあえずデフォルトではオフにしてる。
これ入れるなら attackLimit とかを下げるのもアリかなという気がしている。
https://github.com/MakeNowJust-Labo/recheck/pull/234
IDA の場合後ろのループ部分の入口の状態に入る遷移は2本あるとは限らないと気付いたので、StaticSeeder を修正した。
具体的には、ループを一周して入口まで来る場合は1本でも IDA の形になるので、これをどうにかしなくちゃいけない。
けれど、前のループの出ていく遷移は2つ無いとダメなはず。じゃないとループから出ていかないから。
で、これを修正すると /^(fizz)*(fizz)*$/ みたいなのに対して上手くシードを生成できる。
それどころか StaticSeeder だと見付けられないと思ってた /\/\*.*\*\// も上手くいくようになってしまった。
本当にファジングする必要あるのか自信がなくなってきた‥‥。
いや、意味はあると思うんだよ、一応。
ちゃんと実験しよう。
https://github.com/MakeNowJust-Labo/recheck/pull/235
最後に、FuzzChecker の検査結果を Iterator で返すようにした。
実は再現性チェックの実装を入れたときに AutomatonChecker の検査結果を Iterator で返すようにしたので、FuzzChecker も揃えたというわけ。
Iterator は遅延するので、多分無駄な計算はしていないと思われる。
ログを見る限りは大丈夫そう。