Browse Source

fate: Add --ignore-tests configure option for omitting specific FATE tests

This can be useful to filter out noise in known-broken scenarios like
miscompilation by legacy compilers and similar.

Originally based on a patch by Diego Biurrun.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
tags/n3.4
Janne Grunau Diego Biurrun 8 years ago
parent
commit
35d1f726eb
5 changed files with 23 additions and 3 deletions
  1. +11
    -0
      configure
  2. +1
    -0
      doc/fate.texi
  3. +3
    -1
      tests/Makefile
  4. +7
    -2
      tests/fate-run.sh
  5. +1
    -0
      tests/fate.sh

+ 11
- 0
configure View File

@@ -348,6 +348,8 @@ Developer options (useful when working on Libav itself):
--random-seed=VALUE seed value for --enable/disable-random
--disable-valgrind-backtrace do not print a backtrace under Valgrind
(only applies to --disable-optimizations builds)
--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
@@ -1815,6 +1817,7 @@ CMDLINE_SET="
host_ld
host_ldflags
host_os
ignore_tests
ld
logfile
malloc_prefix
@@ -5192,6 +5195,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_3_columns
echo
fi

license="LGPL version 2.1 or later"
if enabled nonfree; then
license="nonfree and unredistributable"
@@ -5316,6 +5326,7 @@ SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD}
SAMPLES:=${samples:-\$(LIBAV_SAMPLES)}
IGNORE_TESTS=$ignore_tests
EOF

map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> avbuild/config.mak' $LIBRARY_LIST


+ 1
- 0
doc/fate.texi View File

@@ -139,6 +139,7 @@ workdir= # directory in which to do all the work
fate_recv="ssh -T fate@@fate.libav.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=


+ 3
- 1
tests/Makefile View File

@@ -143,11 +143,13 @@ endif

FATE_UTILS = base64 tiny_psnr

$(addprefix fate-, $(IGNORE_TESTS)): REPORT=ignore

fate: $(FATE)

$(FATE): $(FATE_UTILS:%=tests/%$(HOSTEXESUF))
@echo "TEST $(@:fate-%=%)"
$(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(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 $@ "$(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))


+ 7
- 2
tests/fate-run.sh View File

@@ -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}"
@@ -212,13 +213,17 @@ if test -e "$ref" || test $cmp = "oneline" ; 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)"


+ 1
- 0
tests/fate.sh View File

@@ -47,6 +47,7 @@ configure()(
--prefix="${inst}" \
--samples="${samples}" \
--enable-gpl \
${ignore_tests:+--ignore-tests="$ignore_tests"} \
${arch:+--arch=$arch} \
${cpu:+--cpu="$cpu"} \
${toolchain:+--toolchain="$toolchain"} \


Loading…
Cancel
Save