[PATCH] Makefile: add allow-list for failures
Martin Coufal
mcoufal@redhat.com
Tue Feb 10 08:28:54 GMT 2026
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 | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index f81572c20a..f7a993f15b 100644
--- a/Makefile
+++ b/Makefile
@@ -594,7 +594,34 @@ 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
--
2.52.0
More information about the Libc-alpha
mailing list