fate: create report files
authorMåns Rullgård <mans@mansr.com>
Mon, 26 Jul 2010 23:44:06 +0000 (23:44 +0000)
committerMåns Rullgård <mans@mansr.com>
Mon, 26 Jul 2010 23:44:06 +0000 (23:44 +0000)
Originally committed as revision 24529 to svn://svn.ffmpeg.org/ffmpeg/trunk

Makefile
configure
tests/fate-run.sh

index bba9d9a..677406e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -271,10 +271,12 @@ fate2 $(FATE_TESTS):
        @echo "SAMPLES not specified, cannot run FATE"
 endif
 
+FATE_UTILS = base64 tiny_psnr
+
 fate: $(FATE)
 fate2: $(FATE2_TESTS)
 
-$(FATE): ffmpeg$(EXESUF) tests/tiny_psnr$(HOSTEXESUF)
+$(FATE): ffmpeg$(EXESUF) $(FATE_UTILS:%=tests/%$(HOSTEXESUF))
        @echo "TEST    $(@:fate-%=%)"
        $(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)'
 
index 5a6c68f..728a2a6 100755 (executable)
--- a/configure
+++ b/configure
@@ -3172,6 +3172,8 @@ echo "#endif /* AVUTIL_AVCONFIG_H */" >> $TMPH
 
 cp_if_changed $TMPH libavutil/avconfig.h
 
+echo "config:$arch:$subarch:$cpu:$target_os:$cc_ident:$FFMPEG_CONFIGURATION" >config.fate
+
 test -n "$WARNINGS" && printf "\n$WARNINGS"
 
 # build pkg-config files
index 623709f..6046ed1 100755 (executable)
@@ -3,6 +3,8 @@
 base=$(dirname $0)
 . "${base}/md5.sh"
 
+base64=tests/base64
+
 test="${1#fate-}"
 samples=$2
 target_exec=$3
@@ -15,6 +17,8 @@ fuzz=$8
 outdir="tests/data/fate"
 outfile="${outdir}/${test}"
 errfile="${outdir}/${test}.err"
+cmpfile="${outdir}/${test}.diff"
+repfile="${outdir}/${test}.rep"
 
 do_tiny_psnr(){
     psnr=$(tests/tiny_psnr "$1" "$2" 2 0 0)
@@ -102,17 +106,21 @@ mkdir -p "$outdir"
 $command > "$outfile" 2>$errfile
 err=$?
 
-if ! test -e "$ref"; then
+if test -e "$ref"; then
+    case $cmp in
+        diff)   diff -u -w "$ref" "$outfile"            >$cmpfile ;;
+        oneoff) oneoff     "$ref" "$outfile" "$fuzz"    >$cmpfile ;;
+        stddev) stddev     "$ref" "$outfile" "$fuzz"    >$cmpfile ;;
+    esac
+    cmperr=$?
+    test $err = 0 && err=$cmperr
+    test $err = 0 || cat $cmpfile
+else
     echo "reference file '$ref' not found"
-    exit 1
+    err=1
 fi
 
-case $cmp in
-    diff)   diff -u -w "$ref" "$outfile"            ;;
-    oneoff) oneoff     "$ref" "$outfile" "$fuzz"    ;;
-    stddev) stddev     "$ref" "$outfile" "$fuzz"    ;;
-esac
+echo "${test}:${err}:$($base64 <$cmpfile):$($base64 <$errfile)" >$repfile
 
-cmperr=$?
-test $err = 0 && err=$cmperr
-test $err = 0 && rm -f $outfile $errfile $cleanfiles
+test $err = 0 && rm -f $outfile $errfile $cmpfile $cleanfiles
+exit $err