bug#27186: check-TESTS has dependency on check_PROGRAMS etc

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#27186: check-TESTS has dependency on check_PROGRAMS etc

Nick Brown
Something like: 
   ./autogen.sh 
   ./configure 
   make check-TESTS 
will fail, unless 'make check' is run before 'make check-TESTS' for 
Makefile.am snippet like: 

check_PROGRAMS = foo 
check_SCRIPTS = run_foo_wrapper.sh 
TESTS = $(check_SCRIPTS) 
--- 
 lib/am/check.am | 3 ++- 
 1 file changed, 2 insertions(+), 1 deletion(-) 

diff --git a/lib/am/check.am b/lib/am/check.am 
index 7bcffd53faa8..15cfc7c64598 100644 
--- a/lib/am/check.am 
+++ b/lib/am/check.am 
@@ -401,7 +401,8 @@ RECHECK_LOGS = $(TEST_LOGS) 
 ## Running all tests, or rechecking failures. ## 
 ## ------------------------------------------ ## 
  
-check-TESTS: 
+## Running tests depend on $(check_SCRIPTS), $(check_PROGRAMS), etc. 
+check-TESTS: %CHECK_DEPS% 
  @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list 
  @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list 
 ## We always have to remove $(TEST_SUITE_LOG), to ensure its rule is run 
-- 
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#27186: check-TESTS has dependency on check_PROGRAMS etc

Mathieu Lirzin
Hello Nick,

Nick Brown <[hidden email]> writes:

> Something like: 
>    ./autogen.sh 
>    ./configure 
>    make check-TESTS 
> will fail, unless 'make check' is run before 'make check-TESTS' for 
> Makefile.am snippet like: 
>
> check_PROGRAMS = foo 
> check_SCRIPTS = run_foo_wrapper.sh 
> TESTS = $(check_SCRIPTS) 
> --- 
>  lib/am/check.am | 3 ++- 
>  1 file changed, 2 insertions(+), 1 deletion(-) 
>
> diff --git a/lib/am/check.am b/lib/am/check.am 
> index 7bcffd53faa8..15cfc7c64598 100644 
> --- a/lib/am/check.am 
> +++ b/lib/am/check.am 
> @@ -401,7 +401,8 @@ RECHECK_LOGS = $(TEST_LOGS) 
>  ## Running all tests, or rechecking failures. ## 
>  ## ------------------------------------------ ## 
>   
> -check-TESTS: 
> +## Running tests depend on $(check_SCRIPTS), $(check_PROGRAMS), etc. 
> +check-TESTS: %CHECK_DEPS% 
>   @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list 
>   @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list 
>  ## We always have to remove $(TEST_SUITE_LOG), to ensure its rule is run 
> -- 

I must confess I have never used the 'check-TESTS' target myself.  In
fact Automake current manual doesn't even mention it.  So it is not
clear to me how it is expected to work, and what its role compare to the
'check' and 'recheck' target.  Since you seems to use it, maybe you can
give me more background on that target?

Thanks for your patch.

--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#27186: check-TESTS has dependency on check_PROGRAMS etc

Nick Brown
On Mon, 2017-06-05 at 00:45 +0200, Mathieu Lirzin wrote:

> Hello Nick,
>
> Nick Brown <[hidden email]> writes:
>
> > Something like: 
> >    ./autogen.sh 
> >    ./configure 
> >    make check-TESTS 
> > will fail, unless 'make check' is run before 'make check-TESTS'
> > for 
> > Makefile.am snippet like: 
> >
> > check_PROGRAMS = foo 
> > check_SCRIPTS = run_foo_wrapper.sh 
> > TESTS = $(check_SCRIPTS) 
> > --- 
> >  lib/am/check.am | 3 ++- 
> >  1 file changed, 2 insertions(+), 1 deletion(-) 
> >
> > diff --git a/lib/am/check.am b/lib/am/check.am 
> > index 7bcffd53faa8..15cfc7c64598 100644 
> > --- a/lib/am/check.am 
> > +++ b/lib/am/check.am 
> > @@ -401,7 +401,8 @@ RECHECK_LOGS = $(TEST_LOGS) 
> >  ## Running all tests, or rechecking failures. ## 
> >  ## ------------------------------------------ ## 
> >   
> > -check-TESTS: 
> > +## Running tests depend on $(check_SCRIPTS), $(check_PROGRAMS),
> > etc. 
> > +check-TESTS: %CHECK_DEPS% 
> >   @list='$(RECHECK_LOGS)';           test -z "$$list" || rm
> > -f $$list 
> >   @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm
> > -f $$list 
> >  ## We always have to remove $(TEST_SUITE_LOG), to ensure its rule
> > is run 
> > -- 
>
> I must confess I have never used the 'check-TESTS' target myself.  In
> fact Automake current manual doesn't even mention it.  So it is not
> clear to me how it is expected to work, and what its role compare to
> the
> 'check' and 'recheck' target.  Since you seems to use it, maybe you
> can
> give me more background on that target?

As far as I've been able to determine it's purpose is to actually
execute the the test scripts, and is used by the 'check' target for
this.
I don't use it myself directly, but bumped into this issue when using
the the AX_VALGRIND automake macro that uses this target:
https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html


>
> Thanks for your patch.
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#27186: check-TESTS has dependency on check_PROGRAMS etc

Mathieu Lirzin
Hello,

Nick Brown <[hidden email]> writes:

> On Mon, 2017-06-05 at 00:45 +0200, Mathieu Lirzin wrote:
>>
>> Nick Brown <[hidden email]> writes:
>>
>> > Something like: 
>> >    ./autogen.sh 
>> >    ./configure 
>> >    make check-TESTS 
>> > will fail, unless 'make check' is run before 'make check-TESTS'
>> > for 
>> > Makefile.am snippet like: 
>> >
>> > check_PROGRAMS = foo 
>> > check_SCRIPTS = run_foo_wrapper.sh 
>> > TESTS = $(check_SCRIPTS) 
>> > --- 
>> >  lib/am/check.am | 3 ++- 
>> >  1 file changed, 2 insertions(+), 1 deletion(-) 
>> >
>> > diff --git a/lib/am/check.am b/lib/am/check.am 
>> > index 7bcffd53faa8..15cfc7c64598 100644 
>> > --- a/lib/am/check.am 
>> > +++ b/lib/am/check.am 
>> > @@ -401,7 +401,8 @@ RECHECK_LOGS = $(TEST_LOGS) 
>> >  ## Running all tests, or rechecking failures. ## 
>> >  ## ------------------------------------------ ## 
>> >   
>> > -check-TESTS: 
>> > +## Running tests depend on $(check_SCRIPTS), $(check_PROGRAMS),
>> > etc. 
>> > +check-TESTS: %CHECK_DEPS% 
>> >   @list='$(RECHECK_LOGS)';           test -z "$$list" || rm
>> > -f $$list 
>> >   @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm
>> > -f $$list 
>> >  ## We always have to remove $(TEST_SUITE_LOG), to ensure its rule
>> > is run 
>> > -- 
>>
>> I must confess I have never used the 'check-TESTS' target myself.  In
>> fact Automake current manual doesn't even mention it.  So it is not
>> clear to me how it is expected to work, and what its role compare to
>> the
>> 'check' and 'recheck' target.  Since you seems to use it, maybe you
>> can
>> give me more background on that target?
>
> As far as I've been able to determine it's purpose is to actually
> execute the the test scripts, and is used by the 'check' target for
> this.
> I don't use it myself directly, but bumped into this issue when using
> the the AX_VALGRIND automake macro that uses this target:
> https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html
>

while I think nobody should rely on 'check-TESTS' target which is an
implementation detail.  I think it is fine to make it depends on
check_PROGRAMS and check_SCRIPTS.

This is fixes by commit 8555e7b81d0d68e1e8105d072d69b94788953e15.

Thank you.

--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37



Loading...