[PATCH v2] Makefile: add allow-list for failures

Florian Weimer fweimer@redhat.com
Thu Mar 19 13:07:58 GMT 2026


* Martin Coufal:

> Enable adding known failures to allowed-failures.txt and ignore failures
> in case they are in the list.  In case the allowed-failures.txt does not
> exist, all failures lead to a failed status as before.
>
> When the file is present, failures of listed tests are ignored and reported
> on stdout. If tests not in the allowed list fail, summarize-tests exits with
> status 1 and reports the failing tests.
>
> The expected format of allowed-failures.txt file is:
> <test_name> # <comment>
> ---
>  Makefile | 30 +++++++++++++++++++++++++++++-
>  1 file changed, 29 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index f81572c20a..6b0e055518 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -594,7 +594,35 @@ define summarize-tests
>  @grep -E '^[A-Z]+:' $(objpfx)$1 | grep -E -v '^(PASS|XFAIL):' || true
>  @echo "		=== Summary of results$2 ==="
>  @sed -e '/:.*/!d' -e 's/:.*//' < $(objpfx)$1 | sort | uniq -c
> -@! grep -E '^[A-Z]+:' $(objpfx)$1 | grep -E -q -v '^(X?PASS|XFAIL|UNSUPPORTED):'
> +@{ \
> +	grep -E '^[A-Z]+:' $(objpfx)$1 | \
> +	grep -E -v '^(X?PASS|XFAIL|UNSUPPORTED):' | \
> +	( \
> +	  if ! test -f $(..)allowed-failures.txt; then \
> +	    read -r _; exit $$(( $$? == 0 )); \
> +	  fi; \
> +	  status=0; \
> +	  while IFS= read -r line; do \
> +	    case "$$line" in \
> +	      FAIL:*) \
> +	        name=$${line#FAIL: }; \
> +	        escaped_name=`printf '%s' "$$name" | sed 's/[.+]/\\&/g'`; \
> +	        if grep -Eq -- "^$${escaped_name}[[:space:]]*#" \
> +	          $(..)allowed-failures.txt; then \
> +	          echo "Ignoring allowed FAIL: $${name}"; \
> +	          continue; \
> +	        fi; \
> +	        echo "Unallowed FAIL: $${name}"; \
> +	        status=1; \
> +	        ;; \
> +	      *) \
> +	        status=1; \
> +	        ;; \
> +	    esac; \
> +	  done; \
> +	  exit $$status; \
> +	); \
> +      }
>  endef
>  
>  # The intention here is to do ONE install of our build into the

This version looks okay to me.

Reviewed-by: Florian Weimer <fweimer@redhat.com>

Thanks,
Florian



More information about the Libc-alpha mailing list