On Mi, 2011-07-27 at 11:39 +0200, Murray Cumming wrote:
> On Wed, 2011-07-27 at 11:15 +0200, Patrick Ohly wrote:
> [snip useful hints]
> > > 2. Remove the --enable-unit-tests configure option, so that that
> > main 
> > > build does not include the unit-tests code, allowing autotools to 
> > > create a separate build with ENABLE_UNIT_TESTS defined, which the
> > builds
> > > will link against. That will almost double the build time, but it
> > seems
> > > correct.
> > 
> > I don't like that. I compile with --enable-unit-tests. Doubling my
> > compile time would be a considerably productivity hit. 
> 
> This could be avoided if the unit tests were not in the same source
> files, of course. If necessary they could be next to the source files
> with a _test.cpp suffix, though I personally prefer to keep them
> separate.

That would, at least in theory, limit testing to public APIs. Done
properly, libsyncevolution.so would not expose internal classes via a
linker script, so those wouldn't be testable by a separate test. In
practice this is not how it is currently done - but it might be one day.

Personally I quite like to embed tests together with the sources because
it lowers the threshold for adding them and I need to deal with less
files.

> That would also avoid the risk of the unit tests succeeding just because
> the whole source file was not even part of the build.

True. That's why developers should enable as many features as possible.
And because I don't want to rely on due diligence alone, nightly testing
does it, too, and in more combinations than can be idealistically
expected to be checked by devs before committing.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.


_______________________________________________
SyncEvolution mailing list
[email protected]
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to