[FFmpeg-devel] [PATCH] fate: Add a target for listing failed tests
Alexander Strasser
eclipse7 at gmx.net
Sun Dec 1 16:33:18 EET 2024
Hi Martin!
On 2024-11-07 11:36 +0200, Martin Storsjö wrote:
> If running tests with "make -j<N> fate", the execution will stop
> after the first failing test. To get an overview of the whole
> test suite, one rather would run "make -k -j<N> fate", which then
> again buries the results about what tests actually failed further
> up in the console log.
>
> Add a target so one can run "make fate-list-failing", to see a list
> of all tests that failed the last time they were executed.
>
> Also add a companion target "fate-clear-results" which removes all
> the old test results. (When executing a subset of tests, the result
> files of all tests that aren't executed stay untouched. This also
> allows getting rid of results for tests that no longer are present
> in the testsuite.)
Looks good and useful to me.
Just a few ideas follow:
> ---
> So far, I've always just manually run
> "cat tests/data/fate/*.rep | cut -f 1-2 -d : | grep -v :0", but
> perhaps we should at least wrap it up in something more convenient
> for the other developers.
> ---
> doc/build_system.txt | 6 ++++++
> doc/fate.texi | 7 +++++++
> tests/Makefile | 6 ++++++
> 3 files changed, 19 insertions(+)
>
> diff --git a/doc/build_system.txt b/doc/build_system.txt
> index 0b1b0c2054..91c7a5e9af 100644
> --- a/doc/build_system.txt
> +++ b/doc/build_system.txt
> @@ -30,6 +30,12 @@ fate
> fate-list
> List all fate/regression test targets.
>
> +fate-list-failing
> + List the fate tests that failed the last time they were executed.
> +
> +fate-clear-results
> + Remove the test results from previous test executions.
> +
Would it be better to use the same description as int fate.texi ?
> install
> Install headers, libraries and programs.
>
> diff --git a/doc/fate.texi b/doc/fate.texi
> index 17644ce65a..bf01816af8 100644
> --- a/doc/fate.texi
> +++ b/doc/fate.texi
> @@ -208,6 +208,13 @@ Download/synchronize sample files to the configured samples directory.
> @item fate-list
> Will list all fate/regression test targets.
>
> + at item fate-list-failing
> +List the fate tests that failed the last time they were executed.
> +
> + at item fate-clear-results
> +Remove the test results from previous test executions (getting rid of
> +potentially stale results from fate-list-failing).
> +
> @item fate
> Run the FATE test suite (requires the fate-suite dataset).
> @end table
> diff --git a/tests/Makefile b/tests/Makefile
> index 9b70145015..adb0799328 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -313,6 +313,12 @@ $(FATE): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | $(FATE_OUTDIRS)
> fate-list:
> @printf '%s\n' $(sort $(FATE))
>
> +fate-list-failing:
> + @cat tests/data/fate/*.rep | cut -f 1-2 -d : | grep -v :0 | sed 's/:.*//;s/^/fate-/'
> +
> +fate-clear-results:
> + @rm -f tests/data/fate/*.rep
> +
> coverage.info: TAG = LCOV
> coverage.info:
> $(M)lcov -q -d $(CURDIR) -b $(patsubst src%,./,$(SRC_LINK)) --capture | \
> --
Maybe the attached patch would make sense on top of your changes?
Best regards,
Alexander
-------------- next part --------------
From 130ca8d85dcb1fecace596e1f23e0414d56348ef Mon Sep 17 00:00:00 2001
From: Alexander Strasser <eclipse7 at gmx.net>
Date: Sun, 1 Dec 2024 15:06:53 +0100
Subject: [PATCH] fate: Simplify implementation for target fate-list-failing
Make it a little easier to read and use one awk invocation as opposed
to a combination of cat, cut, grep, and sed.
Signed-off-by: Alexander Strasser <eclipse7 at gmx.net>
---
tests/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/Makefile b/tests/Makefile
index adb0799328..2c4ad7c18f 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -314,7 +314,7 @@ fate-list:
@printf '%s\n' $(sort $(FATE))
fate-list-failing:
- @cat tests/data/fate/*.rep | cut -f 1-2 -d : | grep -v :0 | sed 's/:.*//;s/^/fate-/'
+ @awk -F: '$$2 != 0 { print "fate-" $$1 }' tests/data/fate/*.rep
fate-clear-results:
@rm -f tests/data/fate/*.rep
--
More information about the ffmpeg-devel
mailing list