ffmpeg | branch: master | Clément Bœsch <cboe...@gopro.com> | Fri May 5 09:19:41 2017 +0200| [f5218b27c4f8ad06dfd6f491362c027d37ab85ce] | committer: Clément Bœsch
Merge commit '35d1f726eb9fdd376ab900587fb02122b72f2b9a' * commit '35d1f726eb9fdd376ab900587fb02122b72f2b9a': fate: Add --ignore-tests configure option for omitting specific FATE tests Merged-by: Clément Bœsch <cboe...@gopro.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f5218b27c4f8ad06dfd6f491362c027d37ab85ce --- configure | 11 +++++++++++ doc/fate_config.sh.template | 1 + tests/Makefile | 4 +++- tests/fate-run.sh | 9 +++++++-- tests/fate.sh | 1 + 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 f...@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"} \ ====================================================================== diff --cc configure index 96a5e98330,d8b59e2548..b76f9ce567 --- a/configure +++ b/configure @@@ -438,8 -348,8 +438,10 @@@ Developer options (useful when working --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) + --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,9 -1817,8 +2211,10 @@@ CMDLINE_SET= host_ld host_ldflags host_os + ignore_tests + install ld + ln_s logfile malloc_prefix nm @@@ -6617,6 -5195,24 +6620,13 @@@ for type in decoder encoder hwaccel par 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 $ignore_tests | print_in_columns + echo + fi + -license="LGPL version 2.1 or later" -if enabled nonfree; then - license="nonfree and unredistributable" -elif enabled gplv3; then - license="GPL version 3 or later" -elif enabled lgplv3; then - license="LGPL version 3 or later" -elif enabled gpl; then - license="GPL version 2 or later" -fi - echo "License: $license" echo "Creating configuration files ..." @@@ -6751,12 -5325,11 +6761,13 @@@ SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS 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)} +SAMPLES:=${samples:-\$(FATE_SAMPLES)} +NOREDZONE_FLAGS=$noredzone_flags +LIBFUZZER_PATH=$libfuzzer_path + IGNORE_TESTS=$ignore_tests EOF -map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> avbuild/config.mak' $LIBRARY_LIST +map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST print_program_extralibs(){ eval "program_extralibs=\$${1}_extralibs" diff --cc doc/fate_config.sh.template index 56acb2667d,0000000000..ab1bda45e4 mode 100644,000000..100644 --- a/doc/fate_config.sh.template +++ b/doc/fate_config.sh.template @@@ -1,32 -1,0 +1,33 @@@ +slot= # some unique identifier +repo=git://source.ffmpeg.org/ffmpeg.git # the source repository +#branch=release/2.6 # the branch to test +samples= # path to samples directory +workdir= # directory in which to do all the work +#fate_recv="ssh -T f...@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= +cpu= +cross_prefix= +as= +cc= +ld= +target_os= +sysroot= +target_exec= +target_path= +target_samples= +extra_cflags= +extra_ldflags= +extra_libs= +extra_conf= # extra configure options not covered above + +#make= # name of GNU make if not 'make' +makeopts= # extra options passed to 'make' +#makeopts_fate= # extra options passed to 'make' when running tests, + # defaulting to makeopts above if this is not set +#tar= # command to create a tar archive from its arguments on stdout, + # defaults to 'tar c' diff --cc tests/Makefile index 66d99106ff,30e06e8fdd..ab83ae855d --- a/tests/Makefile +++ b/tests/Makefile @@@ -208,16 -141,15 +208,18 @@@ $(FATE_EXTERN) @echo "$@ requires external samples and SAMPLES not specified"; false endif -FATE_UTILS = base64 tiny_psnr +FATE_UTILS = base64 tiny_psnr tiny_ssim audiomatch + +TOOL = ffmpeg + $(addprefix fate-, $(IGNORE_TESTS)): REPORT=ignore + -fate: $(FATE) +fate:: $(FATE) -$(FATE): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) +$(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 $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)' '$(THREADS)' '$(THREAD_TYPE)' '$(CPUFLAGS)' '$(CMP_SHIFT)' '$(CMP_TARGET)' '$(SIZE_TOLERANCE)' '$(CMP_UNIT)' '$(GEN)' '$(HWACCEL)' '$(REPORT)' ++ $(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 --cc tests/fate.sh index 3e106b7181,c93e20a464..0edee7f22e --- a/tests/fate.sh +++ b/tests/fate.sh @@@ -47,8 -47,7 +47,9 @@@ configure() --prefix="${inst}" \ --samples="${samples}" \ --enable-gpl \ + --enable-memory-poisoning \ + --enable-avresample \ + ${ignore_tests:+--ignore-tests="$ignore_tests"} \ ${arch:+--arch=$arch} \ ${cpu:+--cpu="$cpu"} \ ${toolchain:+--toolchain="$toolchain"} \ _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog