Unit tests in libraries?

Steven Schveighoffer schveiguy at yahoo.com
Mon Aug 16 14:16:01 PDT 2010


On Mon, 16 Aug 2010 14:04:57 -0400, Mike Linford  
<mike.linford.reg at gmail.com> wrote:

> On Mon, 16 Aug 2010 08:37:35 -0400, Steven Schveighoffer wrote:
>
>> On Sat, 14 Aug 2010 23:35:54 -0400, Mike Linford
>> <mike.linford.reg at gmail.com> wrote:
>>
>>> Is this a bug? Unit tests do not seem to work in libraries. I'm using
>>> dmd 1.062 for linux.
>>>
>>> mylib.d :
>>> module mylib;
>>>
>>> void blah()
>>> {
>>> }
>>> unittest
>>> {
>>> 	assert(false);
>>> }
>>>
>>> main.d :
>>> module main;
>>>
>>> import mylib;
>>>
>>> void main()
>>> {
>>> 	blah();
>>> }
>>>
>>> The unit test does not get run when compiled as: dmd -lib mylib.d
>>> dmd main.d mylib.a
>>>
>>> But does get run when compiled as
>>> dmd main.d mylib.d
>>>
>>> Is this the intended behavior for unit tests in libraries?
>>
>> Did you pass -unittest to dmd?  It needs to be there when compiling the
>> file that contains unit tests.
>>
>> I'm surprised unittests run at all with those compile lines.
>>
>> -Steve
>
> Haha, whoops, forgot to mention that I DID indeed include -unittest in
> all compile lines.

Hm... I would say if -unittest is passed to the dmd -lib line, and you  
don't get unit tests out of the resulting executable, you found a compiler  
bug!

-Steve


More information about the Digitalmars-d-learn mailing list