Piszę zbiór przykładowych wycieków przestrzeni w Haskell i chciałbym napisać pakiet testowy, by złapać się na tym, żebym wstawił przykłady, które w rzeczywistości nie przeciekają.Sprawdź, czy funkcja Haskella ma wyciek przestrzeni.
Czy istnieje sposób przetestowania przykładów bez tworzenia osobnego pliku wykonywalnego dla każdego z nich?
Neil Mitchell ma bardzo skuteczną i bardzo niski-tech techniki opisanej na swoim blogu: [Wykrywanie nieszczelności przestrzeni ] (http: // neilmitchell.blogspot.com/2015/09/detecting-space-leaks.html). – Cactus
W przyszłości można to sprawdzić za pomocą analizatorów statycznych :) Jeśli można to sformalizować, wykrywanie wycieków przestrzeni jest tylko kwestią implementacji algorytmu. – Shersh
@Cactus: To świetny artykuł. Niestety nie wiem, czy możliwe jest wychwycenie wyjątków wygenerowanych, gdy zabraknie pamięci (co ma sens). Próbowałem wygenerować wyjątek w innym procesie z 'System.Posix.process.forkProcess' i przechwyciłem go' ClassyPrelude.catchAny', ale nadal prześlizguje się przez i powoduje awarię zestawu testów. – seagreen