aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2010-07-20 10:19:28 +0000
committerMåns Rullgård <mans@mansr.com>2010-07-20 10:19:28 +0000
commit9a3f31efcbad0d42c340e35d7d679c7c4d32c229 (patch)
tree1531e317e34febbaf24b45e05c4010b098efe8c7
parentb9d5f1b7eda75be3476c5e3cdb80ac1599e79561 (diff)
downloadffmpeg-9a3f31efcbad0d42c340e35d7d679c7c4d32c229.tar.gz
fate: allow running regtests through fate frontend
Originally committed as revision 24347 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--Makefile49
-rwxr-xr-xtests/fate-run.sh42
2 files changed, 81 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 052a058d33..7b5211aa79 100644
--- a/Makefile
+++ b/Makefile
@@ -266,15 +266,52 @@ include $(SRC_PATH_BARE)/tests/fate2.mak
FATE_TESTS += $(FATE2_TESTS)
+FATE_ACODEC = $(ACODEC_TESTS:regtest-%=fate-acodec-%)
+FATE_VSYNTH1 = $(VCODEC_TESTS:regtest-%=fate-vsynth1-%)
+FATE_VSYNTH2 = $(VCODEC_TESTS:regtest-%=fate-vsynth2-%)
+FATE_VCODEC = $(FATE_VSYNTH1) $(FATE_VSYNTH2)
+FATE_LAVF = $(LAVF_TESTS:regtest-%=fate-lavf-%)
+FATE_LAVFI = $(LAVFI_TESTS:regtest-%=fate-lavfi-%)
+FATE_SEEK = $(SEEK_TESTS:seek_%=fate-seek-%)
+
+FATE = $(FATE_ACODEC) \
+ $(FATE_VCODEC) \
+ $(FATE_LAVF) \
+ $(FATE_LAVFI) \
+ $(FATE_SEEK) \
+
+$(FATE_ACODEC): $(AREF)
+$(FATE_VCODEC): $(VREF)
+$(FATE_LAVF): $(REFS)
+$(FATE_LAVFI): $(REFS)
+$(FATE_SEEK): fate-codec fate-lavf tests/seek_test$(EXESUF)
+
+$(FATE_ACODEC): CMD = codectest acodec
+$(FATE_VSYNTH1): CMD = codectest vsynth1
+$(FATE_VSYNTH2): CMD = codectest vsynth2
+$(FATE_LAVF): CMD = lavftest
+$(FATE_LAVFI): CMD = lavfitest
+$(FATE_SEEK): CMD = seektest
+
+fate-codec: fate-acodec fate-vcodec
+fate-acodec: $(FATE_ACODEC)
+fate-vcodec: $(FATE_VCODEC)
+fate-lavf: $(FATE_LAVF)
+fate-lavfi: $(FATE_LAVFI)
+fate-seek: $(FATE_SEEK)
+
ifdef SAMPLES
-fate: $(FATE_TESTS)
-fate2: $(FATE2_TESTS)
-$(FATE_TESTS): ffmpeg$(EXESUF) tests/tiny_psnr$(HOSTEXESUF)
- @echo "TEST FATE $(@:fate-%=%)"
- $(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)'
+FATE += $(FATE_TESTS)
else
-fate fate2 $(FATE_TESTS):
+fate2 $(FATE_TESTS):
@echo "SAMPLES not specified, cannot run FATE"
endif
+fate: $(FATE)
+fate2: $(FATE2_TESTS)
+
+$(FATE): ffmpeg$(EXESUF) tests/tiny_psnr$(HOSTEXESUF)
+ @echo "TEST FATE $(@:fate-%=%)"
+ $(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)'
+
.PHONY: documentation *test regtest-* alltools check config
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 0bbb530918..4112e1a76c 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -59,15 +59,49 @@ pcm(){
ffmpeg "$@" -vn -f s16le -
}
-if ! test -e "$ref"; then
- echo "reference file '$ref' not found"
- exit 1
-fi
+regtest(){
+ t="${test#$2-}"
+ ref=${base}/ref/$2/$t
+ outfile=tests/data/regression/$2/$t
+ ${base}/${1}-regression.sh $t $2 $3 "$target_exec" "$target_path"
+}
+
+codectest(){
+ regtest codec $1 tests/$1
+}
+
+lavftest(){
+ regtest lavf lavf tests/vsynth1
+}
+
+lavfitest(){
+ regtest lavfi lavfi tests/vsynth1
+}
+
+seektest(){
+ t="${test#seek-}"
+ ref=${base}/ref/seek/$t
+ case $t in
+ image_*) file="tests/data/images/${t#image_}/%02d.${t#image_}" ;;
+ *) file=$(echo $t | tr _ '?')
+ for d in acodec vsynth2 lavf; do
+ test -f tests/data/$d/$file && break
+ done
+ file=$(echo tests/data/$d/$file)
+ ;;
+ esac
+ $target_exec $target_path/tests/seek_test $target_path/$file
+}
mkdir -p "$outdir"
$command > "$outfile" 2>/dev/null || exit
+if ! test -e "$ref"; then
+ echo "reference file '$ref' not found"
+ exit 1
+fi
+
case $cmp in
diff) diff -u -w "$ref" "$outfile" ;;
oneoff) oneoff "$ref" "$outfile" "$fuzz" ;;