phobos unit tests

ZombineDev via Digitalmars-d digitalmars-d at puremagic.com
Sat Sep 3 23:22:27 PDT 2016


On Saturday, 3 September 2016 at 17:16:24 UTC, Jonathan M Davis 
wrote:
> On Saturday, September 03, 2016 16:56:08 ZombineDev via 
> Digitalmars-d wrote:
>> You can just enable the unittests for a single instance that 
>> you
>> know for sure that it will be used. For example:
>> 1)
>> https://github.com/dlang/phobos/blob/v2.071.2-b3/std/experimental/ndslice/sl
>> ice.d#L808
>>
>> 2) 
>> https://github.com/dlang/phobos/blob/v2.071.2-b3/std/experimental/ndslice/sl ice.d#L947
>
> So, in order to avoid having the unit tests compiled into the 
> code of anyone who uses your template, you have to create a 
> special version identifier that you use with your unit test 
> build and your documentation build, and then you version the 
> tests within the template with that version. And in order to 
> avoid having the unit test compiled into every instantiation of 
> that template during your test, you have to also put it in a 
> static if for a specific instantiation? Sure, that's feasible, 
> but that's getting _ugly_.
>
> - Jonathan M Davis

I like and support your DIP about static unittests, I was just 
pointing out that there are workarounds, mainly for people like 
Manu, who need ways to get their job done now.

Personally, I think that putting a single `static if 
(doUnittests)` before each unittest is not too much, considering 
how flexible the doUnittests condition can be (e.g. check if ddoc 
or unittest build, check template parameters, etc.).


More information about the Digitalmars-d mailing list