diff mbox series

Fix tests-clean Makefile target (bug 30545)

Message ID 20230615152547.2924770-1-maxim.kuvyrkov@linaro.org
State New
Headers show
Series Fix tests-clean Makefile target (bug 30545) | expand

Commit Message

Maxim Kuvyrkov June 15, 2023, 3:25 p.m. UTC
This patch improves tests-clean Makefile target to reliably clean
test artifacts from a build directory.  Before this patch tests-clean
missed around 3k (out of total 9k) .out and .test-result files.

Signed-off-by: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
---
 Makefile  |  5 ++++-
 Makerules | 23 +++++------------------
 2 files changed, 9 insertions(+), 19 deletions(-)

Comments

Adhemerval Zanella Netto June 21, 2023, 12:54 p.m. UTC | #1
On 15/06/23 12:25, Maxim Kuvyrkov via Libc-alpha wrote:
> This patch improves tests-clean Makefile target to reliably clean
> test artifacts from a build directory.  Before this patch tests-clean
> missed around 3k (out of total 9k) .out and .test-result files.
> 
> Signed-off-by: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>

I noticed that even by cleaning both *.out and *.test-result, some tests
are still not trigger again:

--- /tmp/old    2023-06-21 09:45:14.665505755 -0300
+++ /tmp/new    2023-06-21 09:45:09.381406461 -0300
@@ -21,11 +21,7 @@
 ./catgets/check-installed-headers-cxx.test-result
 ./catgets/check-obsolete-constructs.test-result
 ./catgets/check-wrapper-headers.test-result
-./catgets/de/libc.cat.test-result
-./catgets/sample.SJIS.cat.test-result
 ./catgets/test-gencat.test-result
-./catgets/test1.cat.test-result
-./catgets/test2.cat.test-result
 ./catgets/tst-catgets-mem.test-result
 ./catgets/tst-catgets.test-result
 ./check-installed-headers-c.test-result
[...]
@@ -1830,108 +1806,12 @@
 ./locale/tst-locale-locpath.test-result
 ./locale/tst-localedef-path-norm.test-result
 ./locale/tst-locname.test-result
-./localedata/C.UTF-8/LC_CTYPE.test-result
-./localedata/am_ET.UTF-8/LC_CTYPE.test-result
-./localedata/az_AZ.UTF-8/LC_CTYPE.test-result
-./localedata/be_BY.UTF-8/LC_CTYPE.test-result
-./localedata/ber_DZ.UTF-8/LC_CTYPE.test-result
-./localedata/ber_MA.UTF-8/LC_CTYPE.test-result
-./localedata/bg_BG.UTF-8/LC_CTYPE.test-result
-./localedata/br_FR.UTF-8/LC_CTYPE.test-result
-./localedata/bs_BA.UTF-8/LC_CTYPE.test-result
 ./localedata/bug-iconv-trans.test-result
 ./localedata/bug-setlocale1-static.test-result
 ./localedata/bug-setlocale1.test-result
 ./localedata/bug-usesetlocale.test-result
[...]

Although it is because they do not really to (they are requirements for
other tests and since code has not change they are not regenerated).

So LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>


> ---
>  Makefile  |  5 ++++-
>  Makerules | 23 +++++------------------
>  2 files changed, 9 insertions(+), 19 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 523efd42c1..f324df7a1f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -518,7 +518,10 @@ mostlyclean: parent-mostlyclean
>  	@$(MAKE) subdir_mostlyclean no_deps=t
>  	-rm -f $(postclean)
>  
> -tests-clean:
> +# Remove test artifacts from the whole glibc build.
> +# do-tests-clean removes test artifacts from top-level directory, and
> +# subdir_testclean removes them from individual sub-directories.
> +tests-clean: do-tests-clean
>  	@$(MAKE) subdir_testclean no_deps=t
>  
>  ifneq (,$(CXX))
> diff --git a/Makerules b/Makerules
> index 2ccf26d320..018780c818 100644
> --- a/Makerules
> +++ b/Makerules
> @@ -1334,18 +1334,13 @@ echo-headers:
>  clean: common-clean
>  mostlyclean: common-mostlyclean
>  
> +# Remove test artifacts from a given directory
>  do-tests-clean:
> -	-rm -f $(addprefix $(objpfx),$(addsuffix .out,$(tests) \
> -						      $(tests-internal) \
> -						      $(xtests) \
> -						      $(test-srcs)) \
> -				     $(addsuffix .test-result,$(tests) \
> -							      $(tests-internal) \
> -							      $(xtests) \
> -							      $(test-srcs)))
> +	-find $(objpfx) -name '*.out' -delete
> +	-find $(objpfx) -name '*.test-result' -delete
>  
>  # Remove the object files.
> -common-mostlyclean:
> +common-mostlyclean: do-tests-clean
>  	-rm -f $(addprefix $(objpfx),$(tests) $(tests-internal) $(xtests) \
>  				     $(test-srcs) \
>  				     $(others) $(sysdep-others) stubs \
> @@ -1354,15 +1349,7 @@ common-mostlyclean:
>  						    $(xtests) \
>  						    $(test-srcs) \
>  						    $(others) \
> -						    $(sysdep-others)) \
> -				     $(addsuffix .out,$(tests) \
> -						      $(tests-internal) \
> -						      $(xtests) \
> -						      $(test-srcs)) \
> -				     $(addsuffix .test-result,$(tests) \
> -							      $(tests-internal) \
> -							      $(xtests) \
> -							      $(test-srcs)))
> +						    $(sysdep-others)))
>  	-rm -f $(addprefix $(objpfx),$(extra-objs) $(extra-test-objs) \
>  				     $(install-lib) $(install-lib.so) \
>  				     $(install-lib.so:%.so=%_pic.a))
Carlos O'Donell June 26, 2023, 1:02 p.m. UTC | #2
On 6/15/23 11:25, Maxim Kuvyrkov wrote:
> This patch improves tests-clean Makefile target to reliably clean
> test artifacts from a build directory.  Before this patch tests-clean
> missed around 3k (out of total 9k) .out and .test-result files.
> 
> Signed-off-by: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>

LGTM. Better than before. I saw Adhemerval's notes.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

> ---
>  Makefile  |  5 ++++-
>  Makerules | 23 +++++------------------
>  2 files changed, 9 insertions(+), 19 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 523efd42c1..f324df7a1f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -518,7 +518,10 @@ mostlyclean: parent-mostlyclean
>  	@$(MAKE) subdir_mostlyclean no_deps=t
>  	-rm -f $(postclean)
>  
> -tests-clean:
> +# Remove test artifacts from the whole glibc build.
> +# do-tests-clean removes test artifacts from top-level directory, and
> +# subdir_testclean removes them from individual sub-directories.
> +tests-clean: do-tests-clean

OK.

>  	@$(MAKE) subdir_testclean no_deps=t
>  
>  ifneq (,$(CXX))
> diff --git a/Makerules b/Makerules
> index 2ccf26d320..018780c818 100644
> --- a/Makerules
> +++ b/Makerules
> @@ -1334,18 +1334,13 @@ echo-headers:
>  clean: common-clean
>  mostlyclean: common-mostlyclean
>  
> +# Remove test artifacts from a given directory
>  do-tests-clean:
> -	-rm -f $(addprefix $(objpfx),$(addsuffix .out,$(tests) \
> -						      $(tests-internal) \
> -						      $(xtests) \
> -						      $(test-srcs)) \
> -				     $(addsuffix .test-result,$(tests) \
> -							      $(tests-internal) \
> -							      $(xtests) \
> -							      $(test-srcs)))
> +	-find $(objpfx) -name '*.out' -delete
> +	-find $(objpfx) -name '*.test-result' -delete

OK. And faster!

>  
>  # Remove the object files.
> -common-mostlyclean:
> +common-mostlyclean: do-tests-clean
>  	-rm -f $(addprefix $(objpfx),$(tests) $(tests-internal) $(xtests) \
>  				     $(test-srcs) \
>  				     $(others) $(sysdep-others) stubs \
> @@ -1354,15 +1349,7 @@ common-mostlyclean:
>  						    $(xtests) \
>  						    $(test-srcs) \
>  						    $(others) \
> -						    $(sysdep-others)) \
> -				     $(addsuffix .out,$(tests) \
> -						      $(tests-internal) \
> -						      $(xtests) \
> -						      $(test-srcs)) \
> -				     $(addsuffix .test-result,$(tests) \
> -							      $(tests-internal) \
> -							      $(xtests) \
> -							      $(test-srcs)))
> +						    $(sysdep-others)))

OK. We've already done this.

>  	-rm -f $(addprefix $(objpfx),$(extra-objs) $(extra-test-objs) \
>  				     $(install-lib) $(install-lib.so) \
>  				     $(install-lib.so:%.so=%_pic.a))
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index 523efd42c1..f324df7a1f 100644
--- a/Makefile
+++ b/Makefile
@@ -518,7 +518,10 @@  mostlyclean: parent-mostlyclean
 	@$(MAKE) subdir_mostlyclean no_deps=t
 	-rm -f $(postclean)
 
-tests-clean:
+# Remove test artifacts from the whole glibc build.
+# do-tests-clean removes test artifacts from top-level directory, and
+# subdir_testclean removes them from individual sub-directories.
+tests-clean: do-tests-clean
 	@$(MAKE) subdir_testclean no_deps=t
 
 ifneq (,$(CXX))
diff --git a/Makerules b/Makerules
index 2ccf26d320..018780c818 100644
--- a/Makerules
+++ b/Makerules
@@ -1334,18 +1334,13 @@  echo-headers:
 clean: common-clean
 mostlyclean: common-mostlyclean
 
+# Remove test artifacts from a given directory
 do-tests-clean:
-	-rm -f $(addprefix $(objpfx),$(addsuffix .out,$(tests) \
-						      $(tests-internal) \
-						      $(xtests) \
-						      $(test-srcs)) \
-				     $(addsuffix .test-result,$(tests) \
-							      $(tests-internal) \
-							      $(xtests) \
-							      $(test-srcs)))
+	-find $(objpfx) -name '*.out' -delete
+	-find $(objpfx) -name '*.test-result' -delete
 
 # Remove the object files.
-common-mostlyclean:
+common-mostlyclean: do-tests-clean
 	-rm -f $(addprefix $(objpfx),$(tests) $(tests-internal) $(xtests) \
 				     $(test-srcs) \
 				     $(others) $(sysdep-others) stubs \
@@ -1354,15 +1349,7 @@  common-mostlyclean:
 						    $(xtests) \
 						    $(test-srcs) \
 						    $(others) \
-						    $(sysdep-others)) \
-				     $(addsuffix .out,$(tests) \
-						      $(tests-internal) \
-						      $(xtests) \
-						      $(test-srcs)) \
-				     $(addsuffix .test-result,$(tests) \
-							      $(tests-internal) \
-							      $(xtests) \
-							      $(test-srcs)))
+						    $(sysdep-others)))
 	-rm -f $(addprefix $(objpfx),$(extra-objs) $(extra-test-objs) \
 				     $(install-lib) $(install-lib.so) \
 				     $(install-lib.so:%.so=%_pic.a))