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.
pull/280/merge
Diego Biurrun 7 years ago
parent dc40e64adb
commit e2399e0c1a
  1. 60
      tests/fate.sh

@ -21,6 +21,33 @@ test -d "$samples" || die "samples location not specified"
: ${branch:=master} : ${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(){
lock=$1/fate.lock lock=$1/fate.lock
(set -C; exec >$lock) 2>/dev/null || return (set -C; exec >$lock) 2>/dev/null || return
@ -43,27 +70,7 @@ update()(
configure()( configure()(
cd ${build} || return cd ${build} || return
${src}/configure \ eval ${src}/configure ${configuration}
--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}
) )
compile()( compile()(
@ -84,7 +91,12 @@ clean(){
report(){ report(){
date=$(date -u +%Y%m%d%H%M%S) date=$(date -u +%Y%m%d%H%M%S)
echo "fate:1:${date}:${slot}:${version}:$1:$2:${branch}:${comment}" >report 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 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" lock ${workdir} || die "${workdir} locked"
cd ${workdir} || die "cd ${workdir} failed" cd ${workdir} || die "cd ${workdir} failed"
src=${workdir}/src
: ${build:=${workdir}/build}
: ${inst:=${workdir}/install}
test -d "$src" && update || checkout || die "Error fetching source" test -d "$src" && update || checkout || die "Error fetching source"
cd ${workdir} cd ${workdir}

Loading…
Cancel
Save