X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tests.scm;h=cb97de7b7ccc9dce6ea99d580436eeff94e9ad03;hb=c5ae353f78e4a422b5151cba643884e1db76e4ad;hp=d56b4f2af73dbaddbf33584e75f3f09e043b0db2;hpb=06111cedb79268f25fefd62e73ddb1651a66f04b;p=8sync.git diff --git a/tests.scm b/tests.scm index d56b4f2..cb97de7 100644 --- a/tests.scm +++ b/tests.scm @@ -10,6 +10,17 @@ (test-begin "tests") + + +;;; Helpers +;;; ======= + +(define (speak-it) + (let ((messages '())) + (lambda* (#:optional message) + (if message (set! messages (append messages (list message)))) + messages))) + ;; Timer tests ;; =========== @@ -200,17 +211,42 @@ (test-equal (run-request-when run-two-squared) '(88 . 0))) +;;; %run, %sync and friends tests +;;; ----------------------------- + +(define (test-%run-and-friends async-request expected-when) + (let* ((fake-kont (speak-it)) + (run-request ((@@ (eightsync agenda) setup-async-request) + fake-kont async-request))) + (test-equal (car async-request) '*async-request*) + (test-equal (run-request-when run-request) expected-when) + ;; we're using speaker as a fake continuation ;p + ((run-request-proc run-request)) + (test-equal (fake-kont) + '("applesauce")))) + +(test-%run-and-friends (%run (string-concatenate '("apple" "sauce"))) + #f) + +(test-%run-and-friends (%run-at (string-concatenate '("apple" "sauce")) + '(8 . 0)) + '(8 . 0)) + +(test-%run-and-friends (%run-delay (string-concatenate '("apple" "sauce")) + 8) + ;; whoa, I'm surprised equal? can + ;; compare records like this + (tdelta 8 0)) + +;; TODO: test %port-request +;; TODO: test %sync and friends! + + ;;; Agenda tests ;;; ------------ ;; helpers -(define (speak-it) - (let ((messages '())) - (lambda* (#:optional message) - (if message (set! messages (append messages (list message)))) - messages))) - (define (true-after-n-times n) (let ((count 0)) (lambda _