summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Bœsch <cboesch@gopro.com>2017-05-05 09:19:41 +0200
committerClément Bœsch <cboesch@gopro.com>2017-05-05 09:27:18 +0200
commitf5218b27c4f8ad06dfd6f491362c027d37ab85ce (patch)
treea95777dfd6f3762333cbb2dcdf663f5431022fec
parenta5fdda79eee0b195ef4958193d17e68b820c8856 (diff)
parent35d1f726eb9fdd376ab900587fb02122b72f2b9a (diff)
Merge commit '35d1f726eb9fdd376ab900587fb02122b72f2b9a'
* commit '35d1f726eb9fdd376ab900587fb02122b72f2b9a': fate: Add --ignore-tests configure option for omitting specific FATE tests Merged-by: Clément Bœsch <cboesch@gopro.com>
-rwxr-xr-xconfigure11
-rw-r--r--doc/fate_config.sh.template1
-rw-r--r--tests/Makefile4
-rwxr-xr-xtests/fate-run.sh9
-rwxr-xr-xtests/fate.sh1
5 files changed, 23 insertions, 3 deletions
diff --git a/configure b/configure
index 96a5e98330..b76f9ce567 100755
--- a/configure
+++ b/configure
@@ -440,6 +440,8 @@ Developer options (useful when working on FFmpeg itself):
(only applies to --disable-optimizations builds)
--enable-osfuzz Enable building fuzzer tool
--libfuzzer=PATH path to libfuzzer
+ --ignore-tests=TESTS comma-separated list (without "fate-" prefix
+ in the name) of tests whose result is ignored
NOTE: Object files are built at the place where configure is launched.
EOF
@@ -2209,6 +2211,7 @@ CMDLINE_SET="
host_ld
host_ldflags
host_os
+ ignore_tests
install
ld
ln_s
@@ -6617,6 +6620,13 @@ for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf ind
echo
done
+if test -n "$ignore_tests"; then
+ ignore_tests=$(echo $ignore_tests | tr ',' ' ')
+ echo "Ignored FATE tests:"
+ echo $ignore_tests | print_in_columns
+ echo
+fi
+
echo "License: $license"
echo "Creating configuration files ..."
@@ -6754,6 +6764,7 @@ VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD}
SAMPLES:=${samples:-\$(FATE_SAMPLES)}
NOREDZONE_FLAGS=$noredzone_flags
LIBFUZZER_PATH=$libfuzzer_path
+IGNORE_TESTS=$ignore_tests
EOF
map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST
diff --git a/doc/fate_config.sh.template b/doc/fate_config.sh.template
index 56acb2667d..ab1bda45e4 100644
--- a/doc/fate_config.sh.template
+++ b/doc/fate_config.sh.template
@@ -6,6 +6,7 @@ workdir= # directory in which to do all the work
#fate_recv="ssh -T fate@fate.ffmpeg.org" # command to submit report
comment= # optional description
build_only= # set to "yes" for a compile-only instance that skips tests
+ignore_tests=
# the following are optional and map to configure options
arch=
diff --git a/tests/Makefile b/tests/Makefile
index 66d99106ff..ab83ae855d 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -212,12 +212,14 @@ FATE_UTILS = base64 tiny_psnr tiny_ssim audiomatch
TOOL = ffmpeg
+$(addprefix fate-, $(IGNORE_TESTS)): REPORT=ignore
+
fate:: $(FATE)
$(FATE) $(FATE_TESTS-no): export PROGSUF = $(PROGSSUF)
$(FATE) $(FATE_TESTS-no): $(FATE_UTILS:%=tests/%$(HOSTEXESUF))
@echo "TEST $(@:fate-%=%)"
- $(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(TARGET_SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)' '$(THREADS)' '$(THREAD_TYPE)' '$(CPUFLAGS)' '$(CMP_SHIFT)' '$(CMP_TARGET)' '$(SIZE_TOLERANCE)' '$(CMP_UNIT)' '$(GEN)' '$(HWACCEL)'
+ $(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(TARGET_SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)' '$(THREADS)' '$(THREAD_TYPE)' '$(CPUFLAGS)' '$(CMP_SHIFT)' '$(CMP_TARGET)' '$(SIZE_TOLERANCE)' '$(CMP_UNIT)' '$(GEN)' '$(HWACCEL)' '$(REPORT)'
fate-list:
@printf '%s\n' $(sort $(FATE))
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 3e8d43c930..0cf31e9477 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -24,6 +24,7 @@ size_tolerance=${14:-0}
cmp_unit=${15:-2}
gen=${16:-no}
hwaccel=${17:-none}
+report_type=${18:-standard}
outdir="tests/data/fate"
outfile="${outdir}/${test}"
@@ -362,13 +363,17 @@ if test -e "$ref" || test $cmp = "oneline" || test $cmp = "grep" ; then
esac
cmperr=$?
test $err = 0 && err=$cmperr
- test $err = 0 || cat $cmpfile
+ if [ "$report_type" = "ignore" ]; then
+ test $err = 0 || echo "IGNORE fate-${test}" && err=0
+ else
+ test $err = 0 || cat $cmpfile
+ fi
else
echo "reference file '$ref' not found"
err=1
fi
-if [ $err -eq 0 ]; then
+if [ $err -eq 0 ] && test $report_type = "standard" ; then
unset cmpo erro
else
cmpo="$($base64 <$cmpfile)"
diff --git a/tests/fate.sh b/tests/fate.sh
index 3e106b7181..0edee7f22e 100755
--- a/tests/fate.sh
+++ b/tests/fate.sh
@@ -49,6 +49,7 @@ configure()(
--enable-gpl \
--enable-memory-poisoning \
--enable-avresample \
+ ${ignore_tests:+--ignore-tests="$ignore_tests"} \
${arch:+--arch=$arch} \
${cpu:+--cpu="$cpu"} \
${toolchain:+--toolchain="$toolchain"} \