[FFmpeg-cvslog] fate: Error out more gracefully on configure failure
Diego Biurrun
git at videolan.org
Tue Mar 6 01:16:16 EET 2018
ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Thu Feb 15 13:26:20 2018 +0100| [e2399e0c1aeb110456405d23e211066fab6cb041] | committer: Diego Biurrun
fate: Error out more gracefully on configure failure
If configure fails before config.fate is generated, the report file misses
some values and gets discarded by the FATE server. In these cases, print
those values as "failed" along with the failing configure command line.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e2399e0c1aeb110456405d23e211066fab6cb041
---
tests/fate.sh | 60 +++++++++++++++++++++++++++++++++--------------------------
1 file changed, 34 insertions(+), 26 deletions(-)
diff --git a/tests/fate.sh b/tests/fate.sh
index c93e20a464..033e7bf5e9 100755
--- a/tests/fate.sh
+++ b/tests/fate.sh
@@ -21,6 +21,33 @@ test -d "$samples" || die "samples location not specified"
: ${branch:=master}
+src=${workdir}/src
+: ${build:=${workdir}/build}
+: ${inst:=${workdir}/install}
+
+configuration='
+ --enable-gpl
+ --prefix="${inst}"
+ --samples="${samples}"
+ ${ignore_tests:+--ignore-tests="$ignore_tests"}
+ ${arch:+--arch="$arch"}
+ ${cpu:+--cpu="$cpu"}
+ ${toolchain:+--toolchain="$toolchain"}
+ ${cross_prefix:+--cross-prefix="$cross_prefix"}
+ ${as:+--as="$as"}
+ ${cc:+--cc="$cc"}
+ ${ld:+--ld="$ld"}
+ ${target_os:+--target-os="$target_os"}
+ ${sysroot:+--sysroot="$sysroot"}
+ ${target_exec:+--target-exec="$target_exec"}
+ ${target_path:+--target-path="$target_path"}
+ ${target_samples:+--target-samples="$target_samples"}
+ ${extra_cflags:+--extra-cflags="$extra_cflags"}
+ ${extra_ldflags:+--extra-ldflags="$extra_ldflags"}
+ ${extra_libs:+--extra-libs="$extra_libs"}
+ ${extra_conf}
+'
+
lock(){
lock=$1/fate.lock
(set -C; exec >$lock) 2>/dev/null || return
@@ -43,27 +70,7 @@ update()(
configure()(
cd ${build} || return
- ${src}/configure \
- --prefix="${inst}" \
- --samples="${samples}" \
- --enable-gpl \
- ${ignore_tests:+--ignore-tests="$ignore_tests"} \
- ${arch:+--arch=$arch} \
- ${cpu:+--cpu="$cpu"} \
- ${toolchain:+--toolchain="$toolchain"} \
- ${cross_prefix:+--cross-prefix="$cross_prefix"} \
- ${as:+--as="$as"} \
- ${cc:+--cc="$cc"} \
- ${ld:+--ld="$ld"} \
- ${target_os:+--target-os="$target_os"} \
- ${sysroot:+--sysroot="$sysroot"} \
- ${target_exec:+--target-exec="$target_exec"} \
- ${target_path:+--target-path="$target_path"} \
- ${target_samples:+--target-samples="$target_samples"} \
- ${extra_cflags:+--extra-cflags="$extra_cflags"} \
- ${extra_ldflags:+--extra-ldflags="$extra_ldflags"} \
- ${extra_libs:+--extra-libs="$extra_libs"} \
- ${extra_conf}
+ eval ${src}/configure ${configuration}
)
compile()(
@@ -84,7 +91,12 @@ clean(){
report(){
date=$(date -u +%Y%m%d%H%M%S)
echo "fate:1:${date}:${slot}:${version}:$1:$2:${branch}:${comment}" >report
- cat ${build}/avbuild/config.fate ${build}/tests/data/fate/*.rep >> report 2> /dev/null
+ if test -e ${build}/avbuild/config.fate; then
+ cat ${build}/avbuild/config.fate >> report 2> /dev/null
+ else
+ eval echo config:failed:failed:failed:failed:failed:${configuration} >> report 2> /dev/null
+ fi
+ cat ${build}/tests/data/fate/*.rep >> report 2> /dev/null
test -n "$fate_recv" && $tar report *.log | gzip | $fate_recv
}
@@ -98,10 +110,6 @@ mkdir -p ${workdir} || die "Error creating ${workdir}"
lock ${workdir} || die "${workdir} locked"
cd ${workdir} || die "cd ${workdir} failed"
-src=${workdir}/src
-: ${build:=${workdir}/build}
-: ${inst:=${workdir}/install}
-
test -d "$src" && update || checkout || die "Error fetching source"
cd ${workdir}
More information about the ffmpeg-cvslog
mailing list