numam-spdk/autobuild.sh
Daniel Verkamp 095c690ebd autobuild: exit immediately on error
Rather than tracking whether something failed earlier in the script,
ust allow the error code to trigger 'set -e' and exit.

Change-Id: Ie41c3c680f6bdfe53025263d2cf0da959350f9be
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-02-15 17:21:12 -07:00

83 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
rootdir=$(readlink -f $(dirname $0))
source "$rootdir/scripts/autotest_common.sh"
out=$PWD
umask 022
cd $rootdir
date -u
git describe --tags
if [ -d /usr/src/fio ]; then
MAKECONFIG="$MAKECONFIG CONFIG_FIO_PLUGIN=y FIO_SOURCE_DIR=/usr/src/fio"
fi
if [ -d /usr/include/rbd ] && [ -d /usr/include/rados ]; then
MAKECONFIG="$MAKECONFIG CONFIG_RBD=y"
fi
timing_enter autobuild
timing_enter check_format
./scripts/check_format.sh
timing_exit check_format
timing_enter build_kmod
./scripts/build_kmod.sh build
timing_exit build_kmod
scanbuild=''
if hash scan-build; then
scanbuild="scan-build -o $out/scan-build-tmp --status-bugs"
fi
$MAKE $MAKEFLAGS clean
timing_enter scanbuild_make
fail=0
time $scanbuild $MAKE $MAKEFLAGS DPDK_DIR=$DPDK_DIR $MAKECONFIG || fail=1
if [ $fail -eq 1 ]; then
if [ -d $out/scan-build-tmp ]; then
scanoutput=$(ls -1 $out/scan-build-tmp/)
mv $out/scan-build-tmp/$scanoutput $out/scan-build
rm -rf $out/scan-build-tmp
chmod -R a+rX $out/scan-build
fi
exit 1
else
rm -rf $out/scan-build-tmp
fi
timing_exit scanbuild_make
# Check that header file dependencies are working correctly by
# capturing a binary's stat data before and after touching a
# header file and re-making.
STAT1=`stat examples/nvme/identify/identify`
sleep 1
touch lib/nvme/nvme_internal.h
$MAKE $MAKEFLAGS DPDK_DIR=$DPDK_DIR $MAKECONFIG
STAT2=`stat examples/nvme/identify/identify`
if [ "$STAT1" == "$STAT2" ]; then
echo "Header dependency check failed"
exit 1
fi
timing_enter doxygen
if hash doxygen; then
(cd "$rootdir"/doc; $MAKE $MAKEFLAGS)
mkdir -p "$out"/doc
mv "$rootdir"/doc/output/html "$out"/doc
rm -rf "$rootdir"/doc/output
fi
timing_exit doxygen
timing_exit autobuild