Gezählt wurden die Token innerhalb der Funktion sowie alles außerhalb davon, falls vorhanden. Getestet wurde mit GCC 3.4.2 und Visual C++ 2005. Wenn Fehler auftraten, dann jeweils bei beiden Compilern, aber teilweise bei verschiedenen Testfällen, was zumeist darauf zurückzuführen ist, dass der Code undefiniertes Verhalten erzeugt.
Zunächst wurden die Lösungen mit 18 per Hand ausgesuchten Tests geprüft.
Anschließend folgten eine Million Tests mit zufälligen Strings. Die Daten, die vor und hinter dem String im Speicher liegen, werden ebenfalls zufällig gesetzt.
Das Testprogramm zum Nachvollziehen
Es wird jeweils nur der erste Fehler angezeigt.
big_muff hat rechts zu weit gelesen bei "x" (Daten davor: "", Daten danach: "") big_muff: falsch Bugger: korrekt drakon hat links zu weit gelesen bei "x" (Daten davor: "", Daten danach: "") drakon: falsch DataByte hat links zu weit gelesen bei "x" (Daten davor: "", Daten danach: "") DataByte: falsch David_pb hat rechts zu weit gelesen bei "" (Daten davor: "", Daten danach: "") David_pb: falsch David Scherfgen: korrekt entenwickler: korrekt Florianx: korrekt Helmut lieferte 2 bei "nxpkxn" (Daten davor: "", Daten danach: "zrgkixocy"), korrekt ist 1 Helmut: falsch Maxim hat links zu weit gelesen bei "x" (Daten davor: "", Daten danach: "") Maxim: falsch neido hat links zu weit gelesen bei "x" (Daten davor: "", Daten danach: "") neido: falsch Phili hat rechts zu weit gelesen bei "" (Daten davor: "", Daten danach: "") Phili: falsch Referenz: korrekt Sicaine hat rechts zu weit gelesen bei "x" (Daten davor: "", Daten danach: "") Sicaine: falsch Stefan Seegel: korrekt TGGC hat rechts zu weit gelesen bei "" (Daten davor: "", Daten danach: "") TGGC: falsch