selectively running unittest functions

Dmitry Olshansky dmitry.olsh at gmail.com
Sat Oct 26 01:09:20 PDT 2013


26-Oct-2013 02:36, Daniel Davidson пишет:
> On Friday, 25 October 2013 at 16:43:23 UTC, Daniel Davidson wrote:
>> On Friday, 25 October 2013 at 14:14:39 UTC, Dicebot wrote:
>>> This will work starting with 2.064:
>>
>> Ok. I'll keep pressing. Here is an updated version:
>> http://pastebin.com/g6FWsTkr
>>
>> The idea is to be able to just import ut, annotate as you have
>> described and get unit tests run. I want to mixin the equivalent of
>> your "main" in each module that just pulls in a module constructors to
>> evaluate what tests are there. The code in the paste crashes on the
>> call to getUnitests.
>>
>> If I comment out `alias tests = TypeTuple!(__traits(getUnitTests,
>> mod));` then I see similar call to  `alias members =
>> TypeTuple!(__traits(allMembers, mod));` work just fine.
>>
>> Is this the right way to use this? Any pointers on the segmentation
>> fault?
>>
>> Thanks
>> Dan
>
>
> Ok, binary reduction has shown the seg fault was due to a debug import.

It's a bug so please file it in bugzilla. Don't let them go unnoticed ;)
http://d.puremagic.com/issues/

> This code causes a crash for me - just because of the getUnittests. If I
> remove the debug import it works. Since I use debug imports in general,
> I'm not so sure it is worthwhile to pursue the named unit test approach
> at this time.
>
> import std.typetuple;
> import std.stdio;
> debug import std.datetime;
> unittest { writeln("In Test!!"); }
> mixin("alias mod = " ~ __MODULE__ ~ ";");
> alias tests = TypeTuple!(__traits(getUnitTests, mod));
> static this() {
>    writeln("Done");
> }
>
>
> Thanks
> Dan


-- 
Dmitry Olshansky


More information about the Digitalmars-d-learn mailing list