optionally verbose assertions
Steven Schveighoffer
schveiguy at yahoo.com
Thu Apr 14 08:47:11 PDT 2011
On Thu, 14 Apr 2011 11:28:39 -0400, spir <denis.spir at gmail.com> wrote:
> On 04/14/2011 04:03 PM, Steven Schveighoffer wrote:
>> Sometimes, I worry that my unit tests or asserts aren't running. Every
>> once in
>> a while, I have to change one to fail to make sure that code is
>> compiling (this
>> is especially true when I'm doing version statements or templates). It
>> would
>> be nice if there was a -assertprint mode which showed asserts actually
>> running
>> (only for the module compiled with that switch, of course).
>
> Man, I'm very pleased to read someone else advocating for optionally
> verbose assertions.
> This could use 2 arguments instead of a predicate:
> assert(expressions, value);
> Example use:
[snip]
I don't think we can change assert syntax now. What I was looking was for
something more like:
assert(x == y);
prints out
"asserting x == y: true"
for asserts that pass when you have the 'verbose assert' flag turned on.
This should be easy to do in the compiler by just translating
assert(expr);
to something like:
auto result = evaluateAssert(expr);
print("asserting expr: ", result ? "true" : "false");
assert(result);
-Steve
More information about the Digitalmars-d
mailing list