optionally verbose assertions
Daniel Gibson
metalcaedes at gmail.com
Thu Apr 14 09:35:49 PDT 2011
Am 14.04.2011 17:47, schrieb Steven Schveighoffer:
> 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
Another possibility are named unittests and printing out "running test
'foobar' was successful".
One message for every assert is too verbose IMHO.
Cheers,
- Daniel
More information about the Digitalmars-d
mailing list