aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.ci/clang-asan.sh62
-rw-r--r--.ci/clang.sh57
-rw-r--r--.ci/common.sh8
-rw-r--r--.ci/gcc.sh9
-rw-r--r--.travis.yml9
5 files changed, 69 insertions, 76 deletions
diff --git a/.ci/clang-asan.sh b/.ci/clang-asan.sh
deleted file mode 100644
index f8fd19b7b0..0000000000
--- a/.ci/clang-asan.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-. "$CI_SCRIPTS/common.sh"
-
-sudo pip install cpp-coveralls
-
-if [ "$TRAVIS_OS_NAME" = "linux" ]; then
- clang_version=3.4.2
- clang_suffix=x86_64-unknown-ubuntu12.04.xz
-elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
- clang_version=3.5.0
- clang_suffix=macosx-apple-darwin.tar.xz
-else
- echo "Unknown OS '$TRAVIS_OS_NAME'."
- exit 1
-fi
-
-if [ ! -d /usr/local/clang-$clang_version ]; then
- echo "Downloading clang $clang_version..."
- sudo mkdir /usr/local/clang-$clang_version
- wget -q -O - http://llvm.org/releases/$clang_version/clang+llvm-$clang_version-$clang_suffix \
- | sudo tar xJf - --strip-components=1 -C /usr/local/clang-$clang_version
-fi
-
-export CC=/usr/local/clang-$clang_version/bin/clang
-symbolizer=/usr/local/clang-$clang_version/bin/llvm-symbolizer
-
-setup_deps x64
-
-export ASAN_SYMBOLIZER_PATH=$symbolizer
-export ASAN_OPTIONS="detect_leaks=1:log_path=$tmpdir/asan"
-export TSAN_OPTIONS="external_symbolizer_path=$symbolizer:log_path=$tmpdir/tsan"
-
-export UBSAN_OPTIONS="log_path=$tmpdir/ubsan" # not sure if this works
-
-CMAKE_EXTRA_FLAGS="-DTRAVIS_CI_BUILD=ON \
- -DUSE_GCOV=ON \
- -DBUSTED_OUTPUT_TYPE=plainTerminal"
-
-# Build and output version info.
-$MAKE_CMD CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DSANITIZE=ON" nvim
-build/bin/nvim --version
-
-# Run functional tests.
-if ! $MAKE_CMD test; then
- asan_check "$tmpdir"
- exit 1
-fi
-asan_check "$tmpdir"
-
-# Run legacy tests.
-if ! $MAKE_CMD oldtest; then
- reset
- asan_check "$tmpdir"
- exit 1
-fi
-asan_check "$tmpdir"
-
-coveralls --encoding iso-8859-1 || echo 'coveralls upload failed.'
-
-# Test if correctly installed.
-sudo -E $MAKE_CMD install
-/usr/local/bin/nvim --version
-/usr/local/bin/nvim -e -c "quit"
diff --git a/.ci/clang.sh b/.ci/clang.sh
new file mode 100644
index 0000000000..74b3688cec
--- /dev/null
+++ b/.ci/clang.sh
@@ -0,0 +1,57 @@
+. "$CI_SCRIPTS/common.sh"
+
+sudo pip install cpp-coveralls
+
+# Use custom Clang and enable ASAN on Linux.
+if [ "$TRAVIS_OS_NAME" = "linux" ]; then
+ clang_version=3.4.2
+ clang_suffix=x86_64-unknown-ubuntu12.04.xz
+ if [ ! -d /usr/local/clang-$clang_version ]; then
+ echo "Downloading clang $clang_version..."
+ sudo mkdir /usr/local/clang-$clang_version
+ wget -q -O - http://llvm.org/releases/$clang_version/clang+llvm-$clang_version-$clang_suffix \
+ | sudo tar xJf - --strip-components=1 -C /usr/local/clang-$clang_version
+ fi
+ export CC=/usr/local/clang-$clang_version/bin/clang
+ symbolizer=/usr/local/clang-$clang_version/bin/llvm-symbolizer
+ export ASAN_SYMBOLIZER_PATH=$symbolizer
+ export ASAN_OPTIONS="detect_leaks=1:log_path=$tmpdir/asan"
+ export TSAN_OPTIONS="external_symbolizer_path=$symbolizer:log_path=$tmpdir/tsan"
+ export UBSAN_OPTIONS="log_path=$tmpdir/ubsan" # not sure if this works
+ CMAKE_EXTRA_FLAGS="-DTRAVIS_CI_BUILD=ON \
+ -DUSE_GCOV=ON \
+ -DBUSTED_OUTPUT_TYPE=plainTerminal \
+ -DSANITIZE=ON"
+else
+ CMAKE_EXTRA_FLAGS="-DTRAVIS_CI_BUILD=ON \
+ -DUSE_GCOV=ON \
+ -DBUSTED_OUTPUT_TYPE=plainTerminal"
+fi
+
+setup_deps x64
+
+# Build and output version info.
+$MAKE_CMD CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS" nvim
+build/bin/nvim --version
+
+# Run functional tests.
+if ! $MAKE_CMD test; then
+ asan_check "$tmpdir"
+ exit 1
+fi
+asan_check "$tmpdir"
+
+# Run legacy tests.
+if ! $MAKE_CMD oldtest; then
+ reset
+ asan_check "$tmpdir"
+ exit 1
+fi
+asan_check "$tmpdir"
+
+coveralls --encoding iso-8859-1 || echo 'coveralls upload failed.'
+
+# Test if correctly installed.
+sudo -E $MAKE_CMD install
+/usr/local/bin/nvim --version
+/usr/local/bin/nvim -e -c "quit"
diff --git a/.ci/common.sh b/.ci/common.sh
index 29c2a17c51..e1967198e8 100644
--- a/.ci/common.sh
+++ b/.ci/common.sh
@@ -30,17 +30,19 @@ check_core_dumps() {
sleep 2
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
- cores=/cores/*
+ cores="$(find /cores/ -type f -print)"
+ dbg="lldb -Q -o bt -f build/bin/nvim -c"
else
# TODO(fwalch): Will trigger if a file named core.* exists outside of .deps.
- cores="$(find ./ -not -path '*.deps*' -name 'core.*' -print)"
+ cores="$(find ./ -type f -not -path '*.deps*' -name 'core.*' -print)"
+ dbg="gdb -n -batch -ex bt build/bin/nvim"
fi
if [ -z "$cores" ]; then
return
fi
for c in $cores; do
- gdb -q -n -batch -ex bt build/bin/nvim $c
+ $dbg $c
done
exit 1
}
diff --git a/.ci/gcc.sh b/.ci/gcc.sh
index 07cd522b23..3e4ed505da 100644
--- a/.ci/gcc.sh
+++ b/.ci/gcc.sh
@@ -4,17 +4,12 @@ sudo pip install cpp-coveralls
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
sudo apt-get install valgrind
-elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
- brew install valgrind
-else
- echo "Unknown OS '$TRAVIS_OS_NAME'."
- exit 1
+ export VALGRIND=1
+ export VALGRIND_LOG="$tmpdir/valgrind-%p.log"
fi
setup_deps x64
-export VALGRIND=1
-export VALGRIND_LOG="$tmpdir/valgrind-%p.log"
CMAKE_EXTRA_FLAGS="-DTRAVIS_CI_BUILD=ON \
-DUSE_GCOV=ON \
-DBUSTED_OUTPUT_TYPE=plainTerminal"
diff --git a/.travis.yml b/.travis.yml
index 0787e60890..af3a88ed52 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,19 +16,18 @@ env:
# Force verification of DLOG macros.
- CFLAGS='-DMIN_LOG_LEVEL=0'
matrix:
- - CI_TARGET=clang-asan
+ - CI_TARGET=clang
- CI_TARGET=gcc
- CI_TARGET=gcc-32
- CI_TARGET=clint
matrix:
include:
- os: osx
- env: CI_TARGET=clang-asan
+ env: CI_TARGET=clang
+ compiler: clang
- os: osx
env: CI_TARGET=gcc
compiler: gcc-4.9
- allow_failures:
- - os: osx
before_install:
# Pins the version of the java package installed on the Travis VMs
# and avoids a lengthy upgrade process for them.
@@ -41,6 +40,8 @@ before_install:
install:
- if [ $TRAVIS_OS_NAME = linux ]; then
sudo apt-get install xclip gdb;
+ elif [ $TRAVIS_OS_NAME = osx ]; then
+ brew install gettext;
fi
before_script:
# Adds user to a dummy group.