* commit '35d1f726eb9fdd376ab900587fb02122b72f2b9a': fate: Add --ignore-tests configure option for omitting specific FATE tests Merged-by: Clément Bœsch <cboesch@gopro.com>tags/n3.4
@@ -440,6 +440,8 @@ Developer options (useful when working on FFmpeg itself): | |||||
(only applies to --disable-optimizations builds) | (only applies to --disable-optimizations builds) | ||||
--enable-osfuzz Enable building fuzzer tool | --enable-osfuzz Enable building fuzzer tool | ||||
--libfuzzer=PATH path to libfuzzer | --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. | NOTE: Object files are built at the place where configure is launched. | ||||
EOF | EOF | ||||
@@ -2209,6 +2211,7 @@ CMDLINE_SET=" | |||||
host_ld | host_ld | ||||
host_ldflags | host_ldflags | ||||
host_os | host_os | ||||
ignore_tests | |||||
install | install | ||||
ld | ld | ||||
ln_s | ln_s | ||||
@@ -6617,6 +6620,13 @@ for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf ind | |||||
echo | echo | ||||
done | 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 "License: $license" | ||||
echo "Creating configuration files ..." | echo "Creating configuration files ..." | ||||
@@ -6754,6 +6764,7 @@ VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD} | |||||
SAMPLES:=${samples:-\$(FATE_SAMPLES)} | SAMPLES:=${samples:-\$(FATE_SAMPLES)} | ||||
NOREDZONE_FLAGS=$noredzone_flags | NOREDZONE_FLAGS=$noredzone_flags | ||||
LIBFUZZER_PATH=$libfuzzer_path | LIBFUZZER_PATH=$libfuzzer_path | ||||
IGNORE_TESTS=$ignore_tests | |||||
EOF | EOF | ||||
map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST | map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST | ||||
@@ -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 | #fate_recv="ssh -T fate@fate.ffmpeg.org" # command to submit report | ||||
comment= # optional description | comment= # optional description | ||||
build_only= # set to "yes" for a compile-only instance that skips tests | build_only= # set to "yes" for a compile-only instance that skips tests | ||||
ignore_tests= | |||||
# the following are optional and map to configure options | # the following are optional and map to configure options | ||||
arch= | arch= | ||||
@@ -212,12 +212,14 @@ FATE_UTILS = base64 tiny_psnr tiny_ssim audiomatch | |||||
TOOL = ffmpeg | TOOL = ffmpeg | ||||
$(addprefix fate-, $(IGNORE_TESTS)): REPORT=ignore | |||||
fate:: $(FATE) | fate:: $(FATE) | ||||
$(FATE) $(FATE_TESTS-no): export PROGSUF = $(PROGSSUF) | $(FATE) $(FATE_TESTS-no): export PROGSUF = $(PROGSSUF) | ||||
$(FATE) $(FATE_TESTS-no): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | $(FATE) $(FATE_TESTS-no): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | ||||
@echo "TEST $(@:fate-%=%)" | @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: | fate-list: | ||||
@printf '%s\n' $(sort $(FATE)) | @printf '%s\n' $(sort $(FATE)) | ||||
@@ -24,6 +24,7 @@ size_tolerance=${14:-0} | |||||
cmp_unit=${15:-2} | cmp_unit=${15:-2} | ||||
gen=${16:-no} | gen=${16:-no} | ||||
hwaccel=${17:-none} | hwaccel=${17:-none} | ||||
report_type=${18:-standard} | |||||
outdir="tests/data/fate" | outdir="tests/data/fate" | ||||
outfile="${outdir}/${test}" | outfile="${outdir}/${test}" | ||||
@@ -362,13 +363,17 @@ if test -e "$ref" || test $cmp = "oneline" || test $cmp = "grep" ; then | |||||
esac | esac | ||||
cmperr=$? | cmperr=$? | ||||
test $err = 0 && err=$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 | else | ||||
echo "reference file '$ref' not found" | echo "reference file '$ref' not found" | ||||
err=1 | err=1 | ||||
fi | fi | ||||
if [ $err -eq 0 ]; then | |||||
if [ $err -eq 0 ] && test $report_type = "standard" ; then | |||||
unset cmpo erro | unset cmpo erro | ||||
else | else | ||||
cmpo="$($base64 <$cmpfile)" | cmpo="$($base64 <$cmpfile)" | ||||
@@ -49,6 +49,7 @@ configure()( | |||||
--enable-gpl \ | --enable-gpl \ | ||||
--enable-memory-poisoning \ | --enable-memory-poisoning \ | ||||
--enable-avresample \ | --enable-avresample \ | ||||
${ignore_tests:+--ignore-tests="$ignore_tests"} \ | |||||
${arch:+--arch=$arch} \ | ${arch:+--arch=$arch} \ | ||||
${cpu:+--cpu="$cpu"} \ | ${cpu:+--cpu="$cpu"} \ | ||||
${toolchain:+--toolchain="$toolchain"} \ | ${toolchain:+--toolchain="$toolchain"} \ | ||||