diff --git a/doc/fate.texi b/doc/fate.texi index 4c2ba4da16..1512853c3a 100644 --- a/doc/fate.texi +++ b/doc/fate.texi @@ -185,6 +185,8 @@ the synchronisation of the samples directory. The @var{TARGET_EXEC} option provides a way to run FATE wrapped in @command{valgrind}, @command{qemu-user} or @command{wine} or on remote targets through @command{ssh}. +@item GEN +Set to @var{1} to generate the missing or mismatched references. @end table @section Examples diff --git a/tests/Makefile b/tests/Makefile index 0f911e1b66..802f350d2c 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -155,7 +155,7 @@ fate:: $(FATE) $(FATE) $(FATE_TESTS-no): $(FATE_UTILS:%=tests/%$(HOSTEXESUF)) @echo "TEST $(@:fate-%=%)" - $(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)' '$(THREADS)' '$(THREAD_TYPE)' '$(CPUFLAGS)' '$(CMP_SHIFT)' '$(CMP_TARGET)' '$(SIZE_TOLERANCE)' '$(CMP_UNIT)' + $(Q)$(SRC_PATH)/tests/fate-run.sh $@ "$(SAMPLES)" "$(TARGET_EXEC)" "$(TARGET_PATH)" '$(CMD)' '$(CMP)' '$(REF)' '$(FUZZ)' '$(THREADS)' '$(THREAD_TYPE)' '$(CPUFLAGS)' '$(CMP_SHIFT)' '$(CMP_TARGET)' '$(SIZE_TOLERANCE)' '$(CMP_UNIT)' '$(GEN)' fate-list: @printf '%s\n' $(sort $(FATE)) diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 0520d62f7d..14896e5efc 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -22,6 +22,7 @@ cmp_shift=${12:-0} cmp_target=${13:-0} size_tolerance=${14:-0} cmp_unit=${15:-2} +gen=${16:-no} outdir="tests/data/fate" outfile="${outdir}/${test}" @@ -197,6 +198,12 @@ fi echo "${test}:${sig:-$err}:$($base64 <$cmpfile):$($base64 <$errfile)" >$repfile +if test $err != 0 && test $gen != "no" ; then + echo "GEN $ref" + cp -f "$outfile" "$ref" + err=$? +fi + if test $err = 0; then rm -f $outfile $errfile $cmpfile $cleanfiles else