aboutsummaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
0 files changed, 0 insertions, 0 deletions
ll-with-temporary-directory (lambda (cache) (let* ((deleted '()) (delete! (lambda (entry) (set! deleted (cons entry deleted))))) exp ... (maybe-remove-expired-cache-entries cache (const '("a" "b" "c")) #:entry-expiration (const 0) #:delete-entry delete!) (reverse deleted))))) (test-equal "maybe-remove-expired-cache-entries, first cleanup" '("a" "b" "c") (test-cache-cleanup cache)) (test-equal "maybe-remove-expired-cache-entries, no cleanup needed" '() (test-cache-cleanup cache (call-with-output-file (string-append cache "/last-expiry-cleanup") (lambda (port) (display (+ (time-second (current-time time-monotonic)) 100) port))))) (test-equal "maybe-remove-expired-cache-entries, cleanup needed" '("a" "b" "c") (test-cache-cleanup cache (call-with-output-file (string-append cache "/last-expiry-cleanup") (lambda (port) (display 0 port))))) (let ((pid #f)) (test-equal "maybe-remove-expired-cache-entries, cleanup needed but lock taken" '() (test-cache-cleanup cache (let ((in+out (pipe))) (match (primitive-fork) (0 (dynamic-wind (const #t) (lambda () (close-port (car in+out)) (let ((port (lock-file (string-append cache "/last-expiry-cleanup")))) (display 0 port) (display "done!\n" (cdr in+out)) (close-port (cdr in+out)) (sleep 100))) (lambda () (primitive-exit 0)))) (n (set! pid n) (close-port (cdr in+out)) (pk 'chr (get-string-all (car in+out))) (close-port (car in+out))))))) (when pid (kill pid SIGKILL))) (test-equal "maybe-remove-expired-cache-entries, empty cache" '("a" "b" "c") (test-cache-cleanup cache (call-with-output-file (string-append cache "/last-expiry-cleanup") (lambda (port) (display "" port))))) (test-equal "maybe-remove-expired-cache-entries, corrupted cache" '("a" "b" "c") (test-cache-cleanup cache (call-with-output-file (string-append cache "/last-expiry-cleanup") (lambda (port) (display "1\"34657890" port))))) (test-end "cache") ;;; Local Variables: ;;; eval: (put 'test-cache-cleanup 'scheme-indent-function 1) ;;; End: