Index: tests.scm ================================================================== --- tests.scm +++ tests.scm @@ -71,23 +71,29 @@ (if (common:low-noise-print 60 "tests:get-tests-search-path" d) (debug:print 0 *default-log-port* "WARNING: problem with directory " d ", dropping it from tests path")) #f))) (append paths (list (conc *toppath* "/tests")))))) +;; on each filesystem operation, try twice due to NFS seemingly flakiness +;; (define (tests:get-valid-tests test-registry tests-paths) (if (null? tests-paths) test-registry (let loop ((hed (car tests-paths)) (tal (cdr tests-paths))) - (if (common:file-exists? hed) + (if (common:file-exists? hed tries: 2) (for-each (lambda (test-path) (let* ((tname (last (string-split test-path "/"))) (tconfig (conc test-path "/testconfig"))) (if (and (not (hash-table-ref/default test-registry tname #f)) - (common:file-exists? tconfig)) + (common:file-exists? tconfig tries: 2)) (hash-table-set! test-registry tname test-path)))) - (glob (conc hed "/*")))) + (or (common:false-on-exception + (lambda ()(glob (conc hed "/*"))) + message: (conc "Problem listing files in " hed) + tries: 2) + '()))) (if (null? tal) test-registry (loop (car tal)(cdr tal)))))) (define (tests:filter-test-names-not-matched test-names test-patts)