diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2014-11-06 19:38:33 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2014-11-06 21:09:53 -0800 |
commit | 45fda26aa14236b3fa6f13bbe0a1a74e4af1a6bb (patch) | |
tree | 185d6f46f1b895accd1aad968768b10bc39362c5 | |
parent | 437de8d577f4e44b0647d368da21e9133762049c (diff) | |
download | mu-45fda26aa14236b3fa6f13bbe0a1a74e4af1a6bb.tar.gz |
243 - robustify channel tests
-rw-r--r-- | mu.arc.t | 24 |
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 |