aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Nikolaus Rath <Nikolaus@rath.org>2017-01-11 19:16:25 -0800
committerGravatar Nikolaus Rath <Nikolaus@rath.org>2017-01-12 15:19:04 -0800
commitbcb8f7599539248c53051b06b81c3d4f3b327f94 (patch)
treecae564b14b7131c928b94259ac9a96210655aa31
parent9f96db71252fc66b72c433e2ca0d49e031c6a5fd (diff)
Switch Travis build to Meson+Ninja
-rw-r--r--.travis.yml29
-rwxr-xr-xtest/travis-build.sh53
-rwxr-xr-xtest/travis-install.sh14
3 files changed, 74 insertions, 22 deletions
diff --git a/.travis.yml b/.travis.yml
index b7bed8f..a29ccf7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,33 +1,18 @@
sudo: required
+dist: trusty
+
language:
- - python
- c
-python: "3.5"
-compiler:
- - gcc
- - clang
-env:
- - CC=gcc-6
- - CC=clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- doxygen
- - libtool
- valgrind
- - automake
- - autoconf
+ - clang
+ - gcc
- gcc-6
-install:
- - sudo python -m pip install pytest
-script:
- - $CC --version
- - libtool --version
- - valgrind --version
- - ./makeconf.sh
- - ./configure
- - CFLAGS="-fsanitize=address,undefined -g -O1 -Wall -Werror" make
- - doxygen doc/Doxyfile
- - make test
+install: test/travis-install.sh
+script: test/travis-build.sh
+
diff --git a/test/travis-build.sh b/test/travis-build.sh
new file mode 100755
index 0000000..d0b172b
--- /dev/null
+++ b/test/travis-build.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+set -e
+
+export CFLAGS="-Werror"
+export CC
+
+# Standard build
+for CC in gcc gcc-6 clang; do
+ mkdir build-${CC}; cd build-${CC}
+ if [ ${CC} == 'gcc-6' ]; then
+ build_opts='-D b_lundef=false'
+ else
+ build_opts=''
+ fi
+ meson ${build_opts} ../
+ ninja
+
+ sudo chown root:root util/fusermount3
+ sudo chmod 4755 util/fusermount3
+ ninja tests
+ cd ..
+done
+(cd build-$CC; sudo ninja install)
+
+# Sanitized build
+CC=clang
+for san in undefined; do
+ mkdir build-${san}; cd build-${san}
+ # b_lundef=false is required to work around clang
+ # bug, cf. https://groups.google.com/forum/#!topic/mesonbuild/tgEdAXIIdC4
+ meson -D b_sanitize=${san} -D b_lundef=false ..
+ ninja
+
+ # Test as root and regular user
+ sudo ninja tests
+ sudo chown root:root util/fusermount3
+ sudo chmod 4755 util/fusermount3
+ ninja tests
+ cd ..
+done
+
+# Autotools build
+CC=gcc
+./makeconf.sh
+./configure
+make
+sudo python3 -m pytest test/
+sudo make install
+
+# Documentation
+doxygen doc/Doxyfile
+
diff --git a/test/travis-install.sh b/test/travis-install.sh
new file mode 100755
index 0000000..e01b6b1
--- /dev/null
+++ b/test/travis-install.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+sudo ln -svf $(which python3) /usr/bin/python3
+sudo python3 -m pip install pytest meson
+wget https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip
+unzip ninja-linux.zip
+chmod 755 ninja
+sudo chown root:root ninja
+sudo mv -fv ninja /usr/local/bin
+valgrind --version
+ninja --version
+meson --version