diff options
Diffstat (limited to 'tests/fate-update.sh')
-rwxr-xr-x | tests/fate-update.sh | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/fate-update.sh b/tests/fate-update.sh new file mode 100755 index 0000000000..6b4668fc03 --- /dev/null +++ b/tests/fate-update.sh @@ -0,0 +1,55 @@ +#! /bin/sh + +set -e + +base=$(dirname $0) +ref="${base}/ref/fate" + +FATE_DB_URL="http://fate.multimedia.cx/fate-tests.sqlite.bz2" +FATE_DB=$(mktemp fate-db.XXXXXX) +SQL_TESTS='SELECT id,short_name,command FROM test_spec WHERE active=1 ORDER BY short_name' + +do_sql(){ + sqlite3 -noheader -separator ' ' "$FATE_DB" "$@" +} + +wget -q -O - "$FATE_DB_URL" | bunzip2 > "$FATE_DB" +mkdir -p "$ref" +exec 3>"$base/fate.mak" + +do_sql "$SQL_TESTS" | while read id name command; do + case "$name" in + 00-full-regression|ffmpeg-help|binsize-*) continue ;; + esac + case "$command" in + {MD5}*) + command="${command#*ffmpeg}"; command="${command% -}" + command="md5 $command" + ;; + {*}*) continue ;; + *-f\ framecrc\ -) + command="${command#*ffmpeg}"; command="${command% -f *}" + command="framecrc $command" + ;; + *-f\ framemd5\ -) + command="${command#*ffmpeg}"; command="${command% -f *}" + command="framemd5 $command" + ;; + *-f\ crc\ -) + command="${command#*ffmpeg}"; command="${command% -f *}" + command="crc $command" + ;; + *) + echo "Unhandled command '$command'" + exit 1 + ;; + esac + command=$(echo "$command" | sed 's/\$SAMPLES_PATH/$(SAMPLES)/g') + command=$(echo "$command" | sed 's/ *$//') + do_sql "SELECT expected_stdout FROM test_spec WHERE id=$id" | awk '/./{print}' > "$ref/$name" + printf "FATE_TESTS += fate-${name}\n" >&3 + printf "fate-${name}: CMD = %s\n" "$command" >&3 +done + +exec 3<&- +rm -f "$FATE_DB" |