aboutsummaryrefslogtreecommitdiff
path: root/tests/directive/assert.test
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-11-23 16:29:49 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-23 16:29:49 +0200
commit793f078ec31dc61921b382f14412ed3e25cc51d8 (patch)
tree62fb0b58dde440387ca585b151a10dc5af192a25 /tests/directive/assert.test
parent79cb3221c2babe6f560f2e3e463e899631a32b33 (diff)
Implement assert directive
The grammar is as follows: assert <expression> [<description>] assert! <expression> [<description>] The expression must evaluate to 'true' or 'false', just like in if-else.
Diffstat (limited to 'tests/directive/assert.test')
-rw-r--r--tests/directive/assert.test28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/directive/assert.test b/tests/directive/assert.test
new file mode 100644
index 0000000..ca1b035
--- /dev/null
+++ b/tests/directive/assert.test
@@ -0,0 +1,28 @@
+# file : tests/directive/assert.test
+# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include common.test
+
+$* <'assert true' : true
+$* <'assert! false foo' : not-false
+$* <'assert true $no_such_function()' : skip-line
+$* <'assert! $empty($build.version)' : expr
+
+: false
+:
+$* <'assert false' 2>>EOE != 0
+<stdin>:1:1: error: assertion failed
+EOE
+
+: false-desc
+:
+$* <'assert false bad thing happened: (a == b)' 2>>EOE != 0
+<stdin>:1:1: error: assertion failed: bad thing happened: false
+EOE
+
+: invalid
+:
+$* <'assert junk' 2>>EOE != 0
+<stdin>:1:8: error: expected assert-expression to evaluate to 'true' or 'false' instead of 'junk'
+EOE