unittest and WinMain
Robert Fraser
fraserofthenight at gmail.com
Mon Mar 3 13:28:36 PST 2008
Robert Fraser wrote:
> ElfQT wrote:
>> How can I run the unittest part in the code below?
>>
>> I've tried several ways, but ni succes.
>> dmd -unittest tangoUnitTest.d
>> (I use "tango-0.99.4-bin-win32-dmd.1.024.zip".)
>>
>> import tango.sys.win32.UserGdi;
>>
>> extern (C) void rt_init( void delegate(Exception) dg = null );
>> extern (C) void rt_term( void delegate(Exception) dg = null );
>>
>> extern (Windows)
>> int WinMain(HINSTANCE hInstance,
>> HINSTANCE hPrevInstance,
>> LPSTR lpCmdLine,
>> int nCmdShow)
>> {
>> rt_init();
>> rt_term();
>> return 0;
>> }
>>
>> unittest
>> {
>> assert(1==2);
>> }
>>
>> ElfQT
>
> Method 1:
> ---------
> extern(C) _moduleUnitTests();
>
> BOOL WinMain(...) {
> _moduleUnitTests();
> }
>
> Method 2:
> ---------
>
> http://flectioned.kuehne.cn/#unittest
>
> Or my own:
>
> http://www.dsource.org/projects/descent/browser/trunk/descent.unittest/flute/src/org/dsource/descent/unittests/flute.d
>
>
> These run the unit tests from within a static this() block, which
> hopefully runs before WinMain() (if not, you'll have to manually call
> _minit() and _moduleCtor(), but you'd probably need that anyway), and
> don't stop as soon as a test fails.
Oops, spoke too soon. You do indeed need to call those, as well as
initialize the GC:
http://www.digitalmars.com/d/1.0/windows.html
More information about the Digitalmars-d
mailing list