@@ -75,10 +75,12 @@ meaning only while running the regression tests. | |||||
@item THREADS | @item THREADS | ||||
Specify how many threads to use while running regression tests, it is | Specify how many threads to use while running regression tests, it is | ||||
quite useful to detect thread-related regressions. | quite useful to detect thread-related regressions. | ||||
@item CPUFLAGS | |||||
Specify a mask to be applied to autodetected CPU flags. | |||||
@end table | @end table | ||||
@example | @example | ||||
make V=1 SAMPLES=/var/fate/samples THREADS=2 fate | |||||
make V=1 SAMPLES=/var/fate/samples THREADS=2 CPUFLAGS=mmx fate | |||||
@end example | @end example | ||||
@chapter Automated Tests | @chapter Automated Tests | ||||
@@ -116,7 +116,7 @@ fate: $(FATE) | |||||
$(FATE): avconv$(EXESUF) $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | $(FATE): avconv$(EXESUF) $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) | ||||
@echo "TEST $(@:fate-%=%)" | @echo "TEST $(@:fate-%=%)" | ||||
$(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)' '$(THREADS)' '$(THREAD_TYPE)' | |||||
$(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)' '$(THREADS)' '$(THREAD_TYPE)' '$(CPUFLAGS)' | |||||
fate-list: | fate-list: | ||||
@printf '%s\n' $(sort $(FATE)) | @printf '%s\n' $(sort $(FATE)) | ||||
@@ -17,6 +17,7 @@ ref=${7:-"${base}/ref/fate/${test}"} | |||||
fuzz=$8 | fuzz=$8 | ||||
threads=${9:-1} | threads=${9:-1} | ||||
thread_type=${10:-frame+slice} | thread_type=${10:-frame+slice} | ||||
cpuflags=${11:-all} | |||||
outdir="tests/data/fate" | outdir="tests/data/fate" | ||||
outfile="${outdir}/${test}" | outfile="${outdir}/${test}" | ||||
@@ -50,7 +51,7 @@ run(){ | |||||
} | } | ||||
avconv(){ | avconv(){ | ||||
run avconv -nostats -threads $threads -thread_type $thread_type "$@" | |||||
run avconv -nostats -threads $threads -thread_type $thread_type -cpuflags $cpuflags "$@" | |||||
} | } | ||||
framecrc(){ | framecrc(){ | ||||
@@ -76,7 +77,7 @@ pcm(){ | |||||
regtest(){ | regtest(){ | ||||
t="${test#$2-}" | t="${test#$2-}" | ||||
ref=${base}/ref/$2/$t | ref=${base}/ref/$2/$t | ||||
${base}/${1}-regression.sh $t $2 $3 "$target_exec" "$target_path" "$threads" "$thread_type" | |||||
${base}/${1}-regression.sh $t $2 $3 "$target_exec" "$target_path" "$threads" "$thread_type" "$cpuflags" | |||||
} | } | ||||
codectest(){ | codectest(){ | ||||
@@ -10,6 +10,7 @@ raw_src_dir=$3 | |||||
target_exec=$4 | target_exec=$4 | ||||
target_path=$5 | target_path=$5 | ||||
threads=${6:-1} | threads=${6:-1} | ||||
cpuflags=${8:-all} | |||||
datadir="./tests/data" | datadir="./tests/data" | ||||
target_datadir="${target_path}/${datadir}" | target_datadir="${target_path}/${datadir}" | ||||
@@ -43,7 +44,7 @@ echov(){ | |||||
. $(dirname $0)/md5.sh | . $(dirname $0)/md5.sh | ||||
AVCONV_OPTS="-nostats -y" | |||||
AVCONV_OPTS="-nostats -y -cpuflags $cpuflags" | |||||
COMMON_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact" | COMMON_OPTS="-flags +bitexact -idct simple -sws_flags +accurate_rnd+bitexact" | ||||
DEC_OPTS="$COMMON_OPTS -threads $threads" | DEC_OPTS="$COMMON_OPTS -threads $threads" | ||||
ENC_OPTS="$COMMON_OPTS -threads 1 -dct fastint" | ENC_OPTS="$COMMON_OPTS -threads 1 -dct fastint" | ||||