import Assertion.*;
[...]
var foo = "a";
// basic `assert`, that throws if the condition fails
assert(foo == "bar");
// trace some context if the assertion fails
// you can add as many expressions to trace as you need
assert(foo == "bar", foo, Sys.systemName());
// trace expressions consisting of string literals are automatically threated as descriptions
assert(foo.length == 3, "correct length at least");
// if you just want a warning, instead of a throw, use `weakAssert`
weakAssert(foo == "bar");
// if you just want to trace like us, use `show`
show(foo, Sys.systemName(), "show everything");
Assertion
works out of the box without any configuration, but in some
cases you might want to change or disable certain default behaviors.
You can configure the library both at compile time and runtime.
Use -D ASSERTION_NO_ASSERT
to disable the generation of all assertions (both
regular and weak).
You can also use -D ASSERTION_NO_WEAK_ASSERT
to only disable the generation
of weak assertions. Similarly, you can disable the generation of code for
show
with -D ASSERTION_NO_SHOW
.
Similarly to the compile time settings, you can use the following variables to
alter the behavior of Assertion
at runtime:
Assertion.enableAssert
(defaults totrue
)Assertion.enableWeakAssert
(defaults totrue
)Assertion.enableShow
(defaults totrue
)
Additionally, the runtime behavior can be considerably customized by replacing
assertion.Tools.runtime
with a suitable implementation.