[Spice-devel] [PATCH spice-streaming-agent] Only build unit tests when running make check

Lukáš Hrázký lhrazky at redhat.com
Wed Feb 28 10:56:07 UTC 2018


On Tue, 2018-02-27 at 18:02 +0100, Christophe Fergeau wrote:
> On Tue, Feb 27, 2018 at 01:04:31PM +0100, Lukáš Hrázký wrote:
> > On Tue, 2018-02-27 at 06:33 -0500, Frediano Ziglio wrote:
> > > > 
> > > > Removing noinst_PROGRAMS from src/unittests/Makefile.am will cause the
> > > > unit tests not be built on a regular build (`make`), they will only be
> > > > built when running the tests (`make check`).
> > > > 
> > > > C++ unit test frameworks are notorious for long build times too.
> > > > 
> > > > Signed-off-by: Lukáš Hrázký <lhrazky at redhat.com>
> > > > ---
> > > > I am not sure if there was another reason for noinst_PROGRAMS, but I
> > > > don't think so.
> > > > 
> > > 
> > > Yes, this is mainly what it does. In spice-server we have same pattern,
> > > the reason to have it is the opposite of this patch, we want to make
> > > sure tests compile even if they are not executed.
> > > 
> > > If the final aim of this patch is to avoid the requirement of catch
> > > library this patch is just partial.
> > > 
> > > If the aim is to just save some time avoiding to compile tests
> > > the patch is fine but looks like presenting different behaviour
> > > comparing to other SPICE projects.
> > 
> > Not to avoid the Catch dependency, to save time and just not do what
> > the user doesn't want to do. If he wants to build the project, he
> > doesn't need the tests. You only really need to build the tests if you
> > want to run them.
> > 
> > For SPICE projects in general, I think the logic is backwards. We do
> > not want to build the tests on a regular build to make sure they do
> > build. We want to (build and) run the unit tests all the time to make
> > sure not only they build, but also that they pass :)
> 
> This logic is following what the autotools give us, a separate make
> check target.

I am not following :) I think you could make the default (build) target
depend on the check target (practically making them one target, as
opposed to a separate check target, which you mentioned), if that is
what you mean. But that makes little sense, as often you want to only
build and not run tests.

> With this patch, the situation becomes odd I think,
> configure.ac requires an unusual (imo) dependency ('catch') which is
> then not going to be used in our default build (a straight 'make').

How is it more odd than having an unusual dependency which is only used
to build the tests which are then not run? :) I find it more odd to
build the tests for no reason (other than to make sure they build, but
the 'make sure' part is only our responsibility and makes no sense for
users that just want to use it).

By the way, I only sent this change, because it makes sense to me in
itself, but I am somewhat expecting someone (who has more configure.ac-
fu than me) to post the part that makes Catch an optional dependency...

Cheers,
Lukas

> Christophe


More information about the Spice-devel mailing list