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.
This commit is contained in:
Diego Biurrun 2018-02-15 13:26:20 +01:00
parent dc40e64adb
commit e2399e0c1a
1 changed files with 34 additions and 26 deletions

View File

@ -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}