On 10.08.2011 09:29, Jonathan M Davis wrote:
On Wednesday, August 10, 2011 09:11:53 simendsjo wrote:
On 08.08.2011 14:11, simendsjo wrote:
Is it possible to run unittests in libraries?
The following doesn't work:
l.d
===
module l;
import std.stdio;
int f() { return 1; } // just to make sure it's actually compiled in
unittest {
writeln("Unittest from lib");
assert(false);
}
t.d
===
import l;
import std.stdio;
void main() {
writeln(f());
}
> dmd -unittest -lib l
> dmd -unittest t l.lib
> t.exe
1
Anyone? Now I have to compile every source file from the library into
t.d instead of compiling in the library.
I don't know exactly what the deal with unit tests and libraries is, but it
wouldn't surprise me at all if you have to compile a module into a binary to
run its unit tests. Phobos (on Linux at least) is set up to build each module
separately to run its unit tests. I can see why you'd want to do this, so it
may be worth creating a bug report or enhancement request for it, but I have
no idea whether it's supposed to work or not.
- Jonathan M Davis
I haven't tested, but does this mean invariants and contracts is not run
too? In that case I think it should be fixed (if I'm not doing anything
wrong).