Ich schreibe eine Sammlung von Beispielraumlecks in Haskell und möchte eine Testsuite schreiben, um mich selbst einzufangen, falls ich Beispiele einfüge, die nicht wirklich Platz verlieren.Testen Sie, dass eine Haskell-Funktion ein Leerzeichen hat
Gibt es eine Möglichkeit, die Beispiele zu testen, ohne für jede einzelne eine separate ausführbare Datei zu erstellen?
Neil Mitchell hat eine sehr effektive und sehr Low-Tech-Technik auf seinem Blog beschrieben: [Detecting Raum Leaks ] (http: // neilmitchell.blogspot.com/2015/09/detecting-space-leaks.html). – Cactus
In einigen Zukunft wäre es möglich, dies mit statischen Analysatoren zu überprüfen :) Wenn dies formalisiert werden kann, dann ist das Erkennen von Platzlecks nur eine Frage des implementierenden Algorithmus. – Shersh
@Cactus: Das ist ein toller Artikel. Leider weiß ich nicht, ob es möglich ist, die Ausnahmen zu erfassen, die generiert werden, wenn Sie keinen Speicher mehr haben (was sinnvoll ist). Ich habe versucht, die Ausnahme in einem anderen Prozess mit 'System.Posix.process.forkProcess' zu generieren und es mit' ClassyPrelude.catchAny' einzufangen, aber es rutscht immer noch durch und stürzt die Testsuite ab. – seagreen