Martin Hellspong - Why you'd be better off using QuickCheck when porting to Rust

preview_player
Показать описание
For about half a year I’ve been doing a Rust port of a CPU emulator library written in C. This talk will tell you why on earth someone would want to do that, and why the effort likely would have failed without the use of QuickCheck, which has enabled me to thoroughly compare and test that the port has identical behavior to the original (as well as the CPU spec).

It will also tell the tale of macro madness, the discovery of a O(n²) bug in the Rust compiler, and why I think most Rust tradeoffs are near-optimal, seen from someone with years of experience with C/C++, C#, Scala and Clojure. It will also explain the complications when using Cargos multi-threaded testing model interfacing a single-threaded C library, and some potential solutions.

---

Help us caption & translate this video!

Рекомендации по теме
Комментарии
Автор

Great insights towards the end about how to actually formulate properties to be tested. I've played with QuickCheck and SmallCheck a bit in Haskell but struggled to think of realistic ways to apply them, so this is very helpful.

batlin