Gleam derleyicisindeki hataları bulmak için fuzzing testi uygulandı
Öne çıkanlar
- Gleam'in Erlang ve JavaScript çıktıları arasındaki farkları bulmak için fuzzing testi uygulandı.
- Rust ile yazılan derleyici için genel API kullanılarak bellek içi ayrıştırıcı test altyapısı kuruldu.
- Gecelik derlemede sabit ifadelerdeki boru hattı operatörünün yol açtığı bir çökme hatası tespit edildi.
Yazılımcı Daniel Lionel, fonksiyonel programlama dili Gleam'in derleyicisindeki uç durum hatalarını ve kod üretim farklılıklarını tespit etmek için yapıya duyarlı fuzzing (rastgele girdi testi) altyapısı geliştirdi. Gleam'in Erlang ve JavaScript olmak üzere iki farklı platforma derlenmesi, aynı program çıktılarının karşılaştırılarak hataların bulunmasını kolaylaştırıyor.
İlk aşamada büyük dil modelleriyle (LLM) yapılan testler maliyet ve verimsizlik nedeniyle sınırlı sonuç verdi. Bunun üzerine geliştirici, Gleam derleyicisinin Rust ile yazılmış olmasından yararlanarak libFuzzer tabanlı bellek içi bir ayrıştırıcı (parser) test sistemi kurdu. Derleyicinin genel API'sini kullanan bu yöntem, komut satırı aracını çalıştırmadan doğrudan Rust işlevlerini test etti.
Test sürecinde Gleam'in gecelik (nightly) sürümünde sabit ifadelerdeki boru hattı operatörü kullanımına bağlı bir çökme hatası yakalandı. Geliştirici, ayrıştırıcı aşamasından sonra AST tabanlı yapıya duyarlı fuzzing testlerini genişletmeyi planlıyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.