about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-11-06 19:38:33 -0800
committerKartik K. Agaram <vc@akkartik.com>2014-11-06 21:09:53 -0800
commit45fda26aa14236b3fa6f13bbe0a1a74e4af1a6bb (patch)
tree185d6f46f1b895accd1aad968768b10bc39362c5
parent437de8d577f4e44b0647d368da21e9133762049c (diff)
downloadmu-45fda26aa14236b3fa6f13bbe0a1a74e4af1a6bb.tar.gz
243 - robustify channel tests
-rw-r--r--mu.arc.t24
1 files changed, 15 insertions, 9 deletions
diff --git a/mu.arc.t b/mu.arc.t
index 9e6ea769..5a6881f5 100644
--- a/mu.arc.t
+++ b/mu.arc.t
@@ -1798,12 +1798,14 @@
 (new-trace "channel-new")
 (add-fns
   '((main
-      ((1 channel-address) <- new-channel (3 literal)))))
+      ((1 channel-address) <- new-channel (3 literal))
+      ((2 integer) <- get (1 channel-address deref) (first-full offset))
+      ((3 integer) <- get (1 channel-address deref) (first-free offset)))))
 ;? (set dump-trace*)
 (run 'main)
 ;? (prn memory*)
-(if (or (~is 0 (memory* memory*.1))
-        (~is 0 (memory* (+ 1 memory*.1))))
+(if (or (~is 0 memory*.2)
+        (~is 0 memory*.3))
   (prn "F - 'new-channel' initializes 'first-full and 'first-free to 0"))
 
 (reset)
@@ -1814,13 +1816,15 @@
       ((2 integer-address) <- new (integer literal))
       ((2 integer-address deref) <- copy (34 literal))
       ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address))
-      ((1 channel-address deref) <- write (1 channel-address deref) (3 tagged-value-address deref)))))
+      ((1 channel-address deref) <- write (1 channel-address deref) (3 tagged-value-address deref))
+      ((4 integer) <- get (1 channel-address deref) (first-full offset))
+      ((5 integer) <- get (1 channel-address deref) (first-free offset)))))
 ;? (set dump-trace*)
 ;? (= dump-trace* (obj blacklist '("sz" "m" "setm" "addr" "array-len" "cvt0" "cvt1")))
 (run 'main)
 ;? (prn memory*)
-(if (or (~is 0 (memory* memory*.1))
-        (~is 1 (memory* (+ 1 memory*.1))))
+(if (or (~is 0 memory*.4)
+        (~is 1 memory*.5))
   (prn "F - 'write' enqueues item to channel"))
 
 (reset)
@@ -1833,15 +1837,17 @@
       ((3 tagged-value-address) <- new-tagged-value (integer-address literal) (2 integer-address))
       ((1 channel-address deref) <- write (1 channel-address deref) (3 tagged-value-address deref))
       ((4 tagged-value) (1 channel-address deref) <- read (1 channel-address deref))
-      ((5 integer-address) <- maybe-coerce (4 tagged-value) (integer-address literal)))))
+      ((5 integer-address) <- maybe-coerce (4 tagged-value) (integer-address literal))
+      ((6 integer) <- get (1 channel-address deref) (first-full offset))
+      ((7 integer) <- get (1 channel-address deref) (first-free offset)))))
 ;? (set dump-trace*)
 ;? (= dump-trace* (obj blacklist '("sz" "m" "setm" "addr" "array-len" "cvt0" "cvt1")))
 (run 'main)
 ;? (prn int-canon.memory*)
 (if (~is memory*.5 memory*.2)
   (prn "F - 'read' returns written value"))
-(if (or (~is 1 (memory* memory*.1))
-        (~is 1 (memory* (+ 1 memory*.1))))
+(if (or (~is 1 memory*.6)
+        (~is 1 memory*.7))
   (prn "F - 'read' dequeues item from channel"))
 
 (reset)  ; end file with this to persist the trace for the final test