summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAnish Athalye <me@anishathalye.com>2016-01-16 16:43:58 -0500
committerAnish Athalye <me@anishathalye.com>2016-01-16 16:43:58 -0500
commit80c2d8385556ef3f82858f9d8e5050a175cec0ad (patch)
tree698d1f83b74374eb3455976220d5e59fa15fad53 /test
parent2e64388b20780a0a85e7a03840c0ea864aa99124 (diff)
Move Travis CI test script
Diffstat (limited to 'test')
-rwxr-xr-xtest/test_travis75
1 files changed, 75 insertions, 0 deletions
diff --git a/test/test_travis b/test/test_travis
new file mode 100755
index 0000000..8117ec9
--- /dev/null
+++ b/test/test_travis
@@ -0,0 +1,75 @@
+#!/usr/bin/env bash
+set -e
+
+# For debug only:
+# export DEBUG=true
+# set -x
+# set -v
+
+BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
+
+# Travis runs do not rely on Vagrant
+export USE_VAGRANT=false
+export DOTBOT_EXEC="${BASEDIR}/bin/dotbot"
+
+cd "${BASEDIR}"
+. "test/driver-lib.bash"
+
+travis_initialize() {
+ echo "initializing."
+ tests_run=0
+ tests_passed=0
+ tests_failed=0
+ tests_total="${1}"
+ local plural="" && [ "${tests_total}" -gt 1 ] && plural="s"
+ printf -- "running %d test%s...\n\n" "${tests_total}" "${plural}"
+}
+
+travis_cleanup() {
+ # Remove all dotfiles installed since the start, ignoring the main
+ # dotfiles directory, and the dotbot source directory
+ find ~ -mindepth 1 -readable -newermt "${date_stamp}" \
+ -not \( -path ~ -o -path "${BASEDIR}/*" \
+ -o -path ~/dotfiles \) \
+ -exec rm -rf {} +
+}
+
+travis_run_test() {
+ tests_run=$((tests_run + 1))
+ printf '[%d/%d] (%s)\n' "${tests_run}" "${tests_total}" "${1}"
+ cd ${BASEDIR}/test/tests
+ if bash ${1} ; then
+ pass
+ else
+ fail
+ fi
+ travis_cleanup || die "unable to clean up system."
+}
+
+date_stamp="$(date --rfc-3339=ns)"
+start="$(date +%s)"
+
+declare -a tests=()
+
+if [ $# -eq 0 ]; then
+ while read file; do
+ tests+=("${file}")
+ done < <(find ${BASEDIR}/test/tests -type f -name '*.bash')
+else
+ tests=("$@")
+fi
+
+travis_initialize "${#tests[@]}"
+
+for file in "${tests[@]}"; do
+ travis_run_test "$(basename "${file}")"
+done
+
+if report; then
+ ret=0
+else
+ ret=1
+fi
+
+echo "(tests run in $(($(date +%s) - start)) seconds)"
+exit ${ret}