test-%run-and-friends
authorChristopher Allan Webber <cwebber@dustycloud.org>
Sun, 22 Nov 2015 16:44:07 +0000 (10:44 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Sun, 22 Nov 2015 16:44:07 +0000 (10:44 -0600)
tests.scm

index d56b4f2af73dbaddbf33584e75f3f09e043b0db2..e219c486eb6755607d5c3e90117f318137ebf2fb 100644 (file)
--- a/tests.scm
+++ b/tests.scm
 
 (test-begin "tests")
 
+\f
+
+;;; Helpers
+;;; =======
+
+(define (speak-it)
+  (let ((messages '()))
+    (lambda* (#:optional message)
+      (if message (set! messages (append messages (list message))))
+      messages)))
+
 \f
 ;; Timer tests
 ;; ===========
   (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))
+
+
 ;;; 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 _