;;;; critical-region-test.scm -*- Scheme -*- ;;;; Kon Lovett, Dec '18 (import test) (test-begin "Critical Region") ;;; (import critical-region) (test-group "exchanger simple" (let ((xr (make-exchanger #f))) (test-assert (procedure? xr)) (test #f (xr #t)) (test #t (xr 4)) ) ) #; ;FIXME (test-group "exchanger multiple" ) #; (test-group "Critical Region" (test-assert "disabled" (critical-region (not (interrupts-enabled?)))) (test-assert "enabled" (interrupts-enabled?)) (test-assert (not (receive (f v) (critical-region* (abort 'foo)) f))) (test-assert "enabled" (interrupts-enabled?)) (test-assert "apply disabled" (critical-region-apply (lambda (_) (not (interrupts-enabled?))) #f)) (test 'expected (critical-region-apply (lambda (x) x) 'expected)) (test-assert (not (receive (f v) (critical-region-call* (lambda () (abort 'foo))) f))) ) ;;; (test-end "Critical Region") (test-exit)