Bruno Haible <bruno <at> clisp.org> writes:

> So, how to resolve this contradicting requirements?
> 
> Possibility 1: Put the SIGNATURE_CHECK into a file tests/signature.h, and put
> ASSERT, SIZEOF and a few others into tests/macros.h. A test looks like this:
> 
>    #include <config.h>
> 
>    #include <specification.h>
> 
>    #include "signature.h"
>    SIGNATURE_CHECK (...);
> 
>    #include <other.h>
>    #include <other2.h>
>    #include "macros.h"
> 
> Possibility 2: Keep the SIGNATURE_CHECK definition in config.h, on behalf of
> m4/gnulib-common.m4, and put ASSERT, SIZEOF and a few others into 
tests/macros.h.
> A test looks like this:
> 
>    #include <config.h>
> 
>    #include <specification.h>
> 
>    SIGNATURE_CHECK (...);
> 
>    #include <other.h>
>    #include <other2.h>
>    #include "macros.h"
> 
> I've explained why possibility 1 is preferable, but now I am actually 
undecided.
> What do you think?

It's less work for me if we go with possibility 2, but I have no qualms with 
the work to go with possibility 1.  Either way we create macros.h and put 
ASSERT there, and the creation of macros.h is now decoupled from my signature 
check macro.  The difference all boils down to whether SIGNATURE_CHECK is in 
its own header ("signature.h", affecting only the unit tests that include it), 
or whether it is in a common header (<config.h>, and probably should be named 
_GL_SIGNATURE_CHECK to avoid pollution, since config.h is also included by the 
actual project).  I'm 55-45 for going with option 1.  Anyone else want to speak 
up?

-- 
Eric Blake




Reply via email to