diff --git a/t/block.t b/t/block.t new file mode 100644 index 0000000..df6eb5c --- /dev/null +++ b/t/block.t @@ -0,0 +1,42 @@ +(expect "block - return last value" + (equal 'top (block nil 'top))) + +(expect "block - return" + (equal 'ok + (block nil + 'test1 + (return 'ok) + 'fail))) + +(expect "block - return-from" + (equal 'ok + (block banana + 'a + 'b + (return-from banana 'ok) + 'c + 'd))) + +(expect "block - return-from inner block" + (equal 'ok + (block outer + 'a + 'b + (block inner + 'c + (return-from inner 'fail) + 'd) + 'e + 'ok))) + +(expect "block - return-from outer block" + (equal 'ok + (block outer + 'a + 'b + (block inner + 'c + (return-from outer 'ok) + 'd) + 'e + 'fail)))