From aab3ea5f7d53d98d696b87b5661f45dfadd8600a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A5ns=20Rullg=C3=A5rd?= <mans@mansr.com>
Date: Fri, 9 Jul 2010 00:40:51 +0000
Subject: [PATCH] fate: add oneoff comparison method

This adds the 'oneoff' comparison method.  It compares two s16le pcm
files with a max difference <= the fuzz factor treated as success.
Default fuzz is 1.  On failure, the full tiny_psnr output is printed.

Originally committed as revision 24134 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 Makefile          |  2 +-
 tests/fate-run.sh | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index efb714f6c07..4752649d6fe 100644
--- a/Makefile
+++ b/Makefile
@@ -279,7 +279,7 @@ include $(SRC_PATH_BARE)/tests/fate.mak
 
 ifdef SAMPLES
 fate: $(FATE_TESTS)
-$(FATE_TESTS): ffmpeg$(EXESUF)
+$(FATE_TESTS): ffmpeg$(EXESUF) tests/tiny_psnr$(HOSTEXESUF)
 	@echo "TEST FATE   $(@:fate-%=%)"
 	@$(SRC_PATH)/tests/fate-run.sh $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)'
 else
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 39f42ffcc30..7dce9b030e8 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -15,10 +15,20 @@ fuzz=$8
 outdir="tests/data/fate"
 outfile="${outdir}/${test}"
 
+oneoff(){
+    psnr=$(tests/tiny_psnr "$1" "$2" 2 0 0)
+    max=$(expr "$psnr" : '.*MAXDIFF: *\([0-9]*\)')
+    if [ $max -gt ${3:-1} ]; then
+        echo "$psnr"
+        return 1
+    fi
+}
+
 mkdir -p "$outdir"
 
 eval $target_exec $command > "$outfile" 2>/dev/null
 
 case $cmp in
     diff)   diff -u -w "$ref" "$outfile"            ;;
+    oneoff) oneoff     "$ref" "$outfile" "$fuzz"    ;;
 esac
-- 
GitLab