Csmith ist ein Werkzeug, um C-Programme mit zufälliger, aber statisch und dynamisch zum C99-Standard konformer Struktur zu erzeugen. Die Programme selbst tun nichts Sinnvolles, sondern dienen dazu, Compiler, statische Analyseprogramme und andere C-Code verarbeitende Programme einem Stresstest zu unterziehen. Csmith hat in jedem bisher getesteten Werkzeug Fehler gefunden, und zahlreiche Compiler-Fehler konnten so entdeckt und gemeldet werden. (non)