This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Count miscellaneous files built on host for testing as tests
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>, libc-alpha at sourceware dot org
- Date: Thu, 06 Mar 2014 21:53:15 -0500
- Subject: Re: Count miscellaneous files built on host for testing as tests
- Authentication-results: sourceware.org; auth=none
- References: <Pine dot LNX dot 4 dot 64 dot 1403070211280 dot 23661 at digraph dot polyomino dot org dot uk>
On 03/06/2014 09:12 PM, Joseph S. Myers wrote:
> In <https://sourceware.org/ml/libc-alpha/2014-01/msg00198.html> I
> raised the question of counting miscellaneous dependencies of tests,
> built on the host rather than the build system, as tests, so that when
> test failures don't stop "make check" neither do those other builds on
> the host, so that a flaky host doesn't stop "make check" from
> producing a complete summary of test results. Brooks supported that
> idea in <https://sourceware.org/ml/libc-alpha/2014-02/msg00301.html>.
>
> This patch implements that change for all the examples I could find:
> one message catalog in catgets/, locales in localedata/ and timezone
> files in timezone/.
This looks good to me.
I did not go through to verify we caught all possible instances, just
that the changes here look correct.
> Tested x86_64.
>
> 2014-03-07 Joseph Myers <joseph@codesourcery.com>
>
> * catgets/Makefile (tests-special): Add $(objpfx)sample.SJIS.cat.
> ($(objpfx)sample.SJIS.cat): Use $(evaluate-test).
> * timezone/Makefile (testdata): Move definition above include of
> Rules.
> (test-zones): New variable.
> (tests-special): Add zone files.
> (build-testdata): Use $(evaluate-test).
>
> localedata/ChangeLog:
> 2014-03-07 Joseph Myers <joseph@codesourcery.com>
>
> * Makefile (LOCALES): Move definition above include of Rules.
> (LOCALE_SRCS): Likewise.
> (CHARMAPS): Likewise.
> (CTYPE_FILES): Likewise.
> (tests-special): Add locale files.
> ($(addprefix $(objpfx),$(CTYPE_FILES))): Use $(evaluate-test).
>
> diff --git a/catgets/Makefile b/catgets/Makefile
> index 02ca263..ed06508 100644
> --- a/catgets/Makefile
> +++ b/catgets/Makefile
> @@ -33,7 +33,7 @@ test-srcs = test-gencat
>
> ifeq ($(run-built-tests),yes)
> tests-special += $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \
> - $(objpfx)test-gencat.out
> + $(objpfx)sample.SJIS.cat $(objpfx)test-gencat.out
OK.
> endif
>
> gencat-modules = xmalloc
> @@ -88,5 +88,6 @@ $(objpfx)test-gencat.out: test-gencat.sh $(objpfx)test-gencat \
>
> $(objpfx)sample.SJIS.cat: sample.SJIS $(objpfx)gencat
> GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
> - $(built-program-cmd) -H $(objpfx)test-gencat.h < $(word 1,$^) > $@
> + $(built-program-cmd) -H $(objpfx)test-gencat.h < $(word 1,$^) > $@; \
> + $(evaluate-test)
OK.
> endif
> diff --git a/localedata/Makefile b/localedata/Makefile
> index 5f01b61..4cf88c8 100644
> --- a/localedata/Makefile
> +++ b/localedata/Makefile
> @@ -97,6 +97,21 @@ tests-special += $(objpfx)sort-test.out $(objpfx)tst-fmon.out \
> $(objpfx)tst-ctype.out $(objpfx)tst-wctype.out \
> $(objpfx)tst-langinfo.out $(objpfx)tst-numeric.out
>
> +ifeq ($(run-built-tests),yes)
> +# We have to generate locales
> +LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \
> + en_US.ISO-8859-1 en_US.UTF-8 ja_JP.EUC-JP da_DK.ISO-8859-1 \
> + hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \
> + nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 tr_TR.UTF-8 cs_CZ.UTF-8 \
> + zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 si_LK.UTF-8 \
> + tr_TR.ISO-8859-9
> +LOCALE_SRCS := $(shell echo "$(LOCALES)"|sed 's/\([^ .]*\)[^ ]*/\1/g')
> +CHARMAPS := $(shell echo "$(LOCALES)" | \
> + sed -e 's/[^ .]*[.]\([^ ]*\)/\1/g' -e s/SJIS/SHIFT_JIS/g)
> +CTYPE_FILES = $(addsuffix /LC_CTYPE,$(LOCALES))
> +tests-special += $(addprefix $(objpfx),$(CTYPE_FILES))
> +endif
> +
> include ../Rules
>
> # Install the charmap files in gzipped format.
> @@ -119,18 +134,6 @@ CFLAGS-tst-trans.c = -Wno-format
>
>
> ifeq ($(run-built-tests),yes)
> -# We have to generate locales
> -LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \
> - en_US.ISO-8859-1 en_US.UTF-8 ja_JP.EUC-JP da_DK.ISO-8859-1 \
> - hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \
> - nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 tr_TR.UTF-8 cs_CZ.UTF-8 \
> - zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 si_LK.UTF-8 \
> - tr_TR.ISO-8859-9
> -LOCALE_SRCS := $(shell echo "$(LOCALES)"|sed 's/\([^ .]*\)[^ ]*/\1/g')
> -CHARMAPS := $(shell echo "$(LOCALES)" | \
> - sed -e 's/[^ .]*[.]\([^ ]*\)/\1/g' -e s/SJIS/SHIFT_JIS/g)
> -CTYPE_FILES = $(addsuffix /LC_CTYPE,$(LOCALES))
> -
OK.
> generated-dirs += $(LOCALES)
>
> # Dependency for the locale files. We actually make it depend only on
> @@ -138,7 +141,8 @@ generated-dirs += $(LOCALES)
> $(addprefix $(objpfx),$(CTYPE_FILES)): %: \
> gen-locale.sh $(common-objpfx)locale/localedef Makefile \
> $(addprefix charmaps/,$(CHARMAPS)) $(addprefix locales/,$(LOCALE_SRCS))
> - @$(SHELL) gen-locale.sh $(common-objpfx) '$(built-program-cmd)' $@
> + @$(SHELL) gen-locale.sh $(common-objpfx) '$(built-program-cmd)' $@; \
> + $(evaluate-test)
OK.
>
> $(addsuffix .out,$(addprefix $(objpfx),$(tests))): %: \
> $(addprefix $(objpfx),$(CTYPE_FILES))
> diff --git a/timezone/Makefile b/timezone/Makefile
> index e308cca..998cd14 100644
> --- a/timezone/Makefile
> +++ b/timezone/Makefile
> @@ -45,6 +45,14 @@ CPPFLAGS-zic = -DNOT_IN_libc
> install-bin-script = tzselect
> generated += tzselect
>
> +testdata = $(objpfx)testdata
> +
> +# List zones generated by separate commands running zic on the host.
> +# Each such zic run counts as a separate test.
> +test-zones := America/New_York Etc/UTC UTC Europe/Berlin \
> + Australia/Melbourne America/Sao_Paulo Asia/Tokyo
> +tests-special += $(addprefix $(testdata)/, $(test-zones))
> +
> include ../Rules
>
>
> @@ -71,10 +79,10 @@ CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID -DHAVE_GETTEXT
> # We have to make sure the data for testing the tz functions is available.
> # Don't add leapseconds here since test-tz made checks that work only without
> # leapseconds.
> -testdata = $(objpfx)testdata
OK.
> define build-testdata
> GCONV_PATH=${common-objpfx}iconvdata LANGUAGE=C LC_ALL=C \
> - $(built-program-cmd) -d $(testdata) -y ./yearistype $<
> + $(built-program-cmd) -d $(testdata) -y ./yearistype $<; \
> +$(evaluate-test)
OK.
> endef
>
> $(objpfx)test-tz.out: $(addprefix $(testdata)/, America/New_York Etc/UTC UTC)
Cheers,
Carlos.