summaryrefslogtreecommitdiffstats
path: root/.travis-functions.sh
diff options
context:
space:
mode:
Diffstat (limited to '.travis-functions.sh')
-rw-r--r--.travis-functions.sh166
1 files changed, 166 insertions, 0 deletions
diff --git a/.travis-functions.sh b/.travis-functions.sh
new file mode 100644
index 0000000..f852b28
--- /dev/null
+++ b/.travis-functions.sh
@@ -0,0 +1,166 @@
+#!/bin/bash
+#
+# .travis-functions.sh:
+# - helper functions to be sourced from .travis.yml
+# - designed to respect travis' environment but testing locally is possible
+# - modified copy from util-linux project
+#
+
+if [ ! -f "configure.ac" ]; then
+ echo ".travis-functions.sh must be sourced from source dir" >&2
+ return 1 || exit 1
+fi
+
+## some config settings
+# travis docs say we get 1.5 CPUs
+MAKE="make -j2"
+DUMP_CONFIG_LOG="short"
+export TS_OPT_parsable="yes"
+
+function configure_travis
+{
+ ./configure "$@"
+ err=$?
+ if [ "$DUMP_CONFIG_LOG" = "short" ]; then
+ grep -B1 -A10000 "^## Output variables" config.log | grep -v "_FALSE="
+ elif [ "$DUMP_CONFIG_LOG" = "full" ]; then
+ cat config.log
+ fi
+ return $err
+}
+
+function check_nonroot
+{
+ local cfg_opts="$1"
+
+ [ -z "$cfg_opts" ] && return
+
+ configure_travis \
+ --enable-cryptsetup-reencrypt \
+ --enable-internal-sse-argon2 \
+ "$cfg_opts" \
+ || return
+
+ $MAKE || return
+
+ make check
+}
+
+function check_root
+{
+ local cfg_opts="$1"
+
+ [ -z "$cfg_opts" ] && return
+
+ configure_travis \
+ --enable-cryptsetup-reencrypt \
+ --enable-internal-sse-argon2 \
+ "$cfg_opts" \
+ || return
+
+ $MAKE || return
+
+ # FIXME: we should use -E option here
+ sudo make check
+}
+
+function check_nonroot_compile_only
+{
+ local cfg_opts="$1"
+
+ [ -z "$cfg_opts" ] && return
+
+ configure_travis \
+ --enable-cryptsetup-reencrypt \
+ --enable-internal-sse-argon2 \
+ "$cfg_opts" \
+ || return
+
+ $MAKE
+}
+
+function travis_install_script
+{
+ # install some packages from Ubuntu's default sources
+ sudo apt-get -qq update
+ sudo apt-get install -qq >/dev/null \
+ sharutils \
+ libgcrypt20-dev \
+ libssl-dev \
+ libdevmapper-dev \
+ libpopt-dev \
+ uuid-dev \
+ libsepol1-dev \
+ libtool \
+ dmsetup \
+ autoconf \
+ automake \
+ pkg-config \
+ autopoint \
+ gettext \
+ expect \
+ keyutils \
+ libjson-c-dev \
+ libblkid-dev \
+ dkms \
+ linux-headers-$(uname -r) \
+ linux-modules-extra-$(uname -r) \
+ || return
+
+ # For VeraCrypt test
+ sudo apt-get install gost-crypto-dkms
+}
+
+function travis_before_script
+{
+ set -o xtrace
+
+ ./autogen.sh
+ ret=$?
+
+ set +o xtrace
+ return $ret
+}
+
+function travis_script
+{
+ local ret
+ set -o xtrace
+
+ case "$MAKE_CHECK" in
+ gcrypt)
+ check_nonroot "--with-crypto_backend=gcrypt" && \
+ check_root "--with-crypto_backend=gcrypt"
+ ;;
+ gcrypt_compile)
+ check_nonroot_compile_only "--with-crypto_backend=gcrypt"
+ ;;
+ openssl)
+ check_nonroot "--with-crypto_backend=openssl" && \
+ check_root "--with-crypto_backend=openssl"
+ ;;
+ openssl_compile)
+ check_nonroot_compile_only "--with-crypto_backend=openssl"
+ ;;
+ kernel)
+ check_nonroot "--with-crypto_backend=kernel" && \
+ check_root "--with-crypto_backend=kernel"
+ ;;
+ kernel_compile)
+ check_nonroot_compile_only "--with-crypto_backend=kernel"
+ ;;
+ *)
+ echo "error, check environment (travis.yml)" >&2
+ false
+ ;;
+ esac
+
+ ret=$?
+ set +o xtrace
+ return $ret
+}
+
+function travis_after_script
+{
+ return 0
+}