diff --git a/Makefile b/Makefile
index efb714f6c07bb96e5140eebd017d6f6f74f65da4..4752649d6feb9c9157092533c241719c6951eb2f 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 39f42ffcc30a58a984fe183fb56e44ff8bb9df4f..7dce9b030e84a794f9c24918808eca7b6eafed42 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