[FFmpeg-cvslog] Merge commit '35d1f726eb9fdd376ab900587fb02122b72f2b9a'

Clément Bœsch git at videolan.org
Fri May 5 11:05:04 EEST 2017


ffmpeg | branch: master | Clément Bœsch <cboesch at 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 <cboesch at 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 fate at 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 fate at 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"}                          \



More information about the ffmpeg-cvslog mailing list