X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/67e2d80a6a97b51aefea701cf10112102b09b392..5f1611640ad6a2e3af74f97c0bc4bed230130bb6:/test-suite/tests/gc.test diff --git a/test-suite/tests/gc.test b/test-suite/tests/gc.test index cf252ce9e..f5848fba1 100644 --- a/test-suite/tests/gc.test +++ b/test-suite/tests/gc.test @@ -64,18 +64,14 @@ (for-each (lambda (x) (guard (make-module))) (iota total)) - ;; XXX: This hack aims to clean up the stack to make sure we - ;; don't leave a reference to one of the modules we created. It - ;; proved to be useful on SPARC: - ;; http://lists.gnu.org/archive/html/guile-devel/2008-02/msg00006.html . - (let cleanup ((i 20)) - (and (> i 0) - (begin (cleanup (1- i)) i))) - - (gc) + (gc) (gc) ;; twice: have to kill the weak vectors. - (= (length (filter (lambda (x) - (eq? x #t)) - (map (lambda (x) (and (guard) #t)) - (iota total)))) + (gc) ;; thrice: because the test doesn't succeed with only + ;; one gc round. not sure why. + + (= (let lp ((i 0)) + (if (guard) + (lp (1+ i)) + i)) total)))) +