Files
mgmt/test/util.sh
Joe Groocock 5af1dcb8b1 test: Add in_ci utility test function
in_ci checks for environment variables set by a selection of CI systems
and returns true if the test appears to be running in CI. Additionally
it can test for specific CI systems, and returns true if the CI system
is listed.

Deduplicate existing environment checks for Travis and Jenkins.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-02-12 16:44:11 +00:00

63 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# common settings and functions for test scripts
# get the fully expanded path of the project directory
ROOT="$(realpath "$(dirname "$(realpath "${BASH_SOURCE}")")/..")"
# absolute location to freshly build binary to be used for testing
export MGMT="$ROOT/mgmt"
if [[ $(uname) == "Darwin" ]] ; then
export timeout="gtimeout"
export mktemp="gmktemp"
export STAT="gstat"
else
export timeout="timeout"
export mktemp="mktemp"
export STAT="stat"
fi
TIMEOUT="$timeout --kill-after=360s --signal=QUIT 300s"
in_ci() {
if [ $# -eq 0 ]; then
test -n "$CI" -o -n "$TRAVIS" -o -n "$JENKINS_URL"
return $?
fi
for var in "$@"; do
case "$var" in
travis)
test "$TRAVIS" = "true" && return 0;;
jenkins)
test -n "$JENKINS_URL" && return 0;;
*)
continue;;
esac
done
return 1
}
fail_test() {
echo -e "FAIL: $@"
exit 1
}
function run-test() {
"$@" || failures=$( [ -n "$failures" ] && echo "$failures\\n$@" || echo "$@" )
}
# travis expander helpers from:
# https://github.com/travis-ci/travis-rubies/blob/build/build.sh
fold_start() {
if in_ci travis; then
echo -e "travis_fold:start:$1\033[33;1m${@:2}\033[0m"
fi
}
fold_end() {
if in_ci travis; then
echo -e "\ntravis_fold:end:$1\r"
fi
}