neovim/.ci/common.sh

78 lines
1.8 KiB
Bash

valgrind_check() {
check_logs "$1" "valgrind-*"
}
asan_check() {
check_logs "$1" "*san.*"
}
check_logs() {
check_core_dumps
# Iterate through each log to remove an useless warning
for log in $(find "$1" -type f -name "$2"); do
sed -i "$log" \
-e '/Warning: noted but unhandled ioctl/d' \
-e '/could cause spurious value errors to appear/d' \
-e '/See README_MISSING_SYSCALL_OR_IOCTL for guidance/d'
done
# Now do it again, but only consider files with size > 0
for log in $(find "$1" -type f -name "$2" -size +0); do
cat "$log"
err=1
done
if [ -n "$err" ]; then
echo "Runtime errors detected"
exit 1
fi
}
check_core_dumps() {
sleep 2
local c
for c in $(find ./ -name '*core*' -print); do
gdb -q -n -batch -ex bt build/bin/nvim $c
exit 1
done
}
set_environment() {
local prefix="$1/usr"
eval $($prefix/bin/luarocks path)
export PATH="$prefix/bin:$PATH"
export PKG_CONFIG_PATH="$prefix/lib/pkgconfig"
export USE_BUNDLED_DEPS=OFF
}
install_prebuilt_deps() {
# install prebuilt dependencies
if [ ! -d /opt/neovim-deps ]; then
cd /opt
sudo git clone --depth=1 git://github.com/neovim/deps neovim-deps
cd -
fi
}
tmpdir="$(pwd)/tmp"
rm -rf "$tmpdir"
mkdir -p "$tmpdir"
suppressions="$(pwd)/.valgrind.supp"
# Travis reports back that it has 32-cores via /proc/cpuinfo, but it's not
# what we really have available. According to their documentation, it only has
# 1.5 virtual cores.
# See:
# http://docs.travis-ci.com/user/speeding-up-the-build/#Paralellizing-your-build-on-one-VM
# for more information.
MAKE_CMD="make -j2"
install_prebuilt_deps
# Pins the version of the java package installed on the Travis VMs
# and avoids a lengthy upgrade process for them.
sudo apt-mark hold oracle-java7-installer oracle-java8-installer
sudo apt-get update
export CFLAGS='-DMIN_LOG_LEVEL=0' # force verification of DLOG macros