dotfiles/dot_tmux/plugins/tmux-copycat/executable_run-tests
2023-11-13 13:48:17 +01:00

67 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# For each virtual machine where tests run, this script performs the following:
# - starts VM
# - starts the test suite witin a VM
# - stops the VM after the test suite is done
# global variable for script exit value
export EXIT_VALUE=0
register_failing_specs() {
EXIT_VALUE=1
}
run_vagrant() {
local box="$1"
vagrant up "$box"
}
# Halt vagrant after tests are done running, unless KEEP_RUNNING environment
# variable is set to 'true'.
stop_vagrant() {
local box="$1"
if [ -z "$KEEP_RUNNING" ]; then
vagrant halt "$box"
else
echo
echo "KEEP_RUNNING is set. Vagrant not halted."
fi
}
run_tests() {
local box="$1"
local test_file="/vagrant/test/run-tests-within-vm"
echo "Running test suite on $box from: $test_file"
echo
vagrant ssh "$box" -c "cd /vagrant; $test_file"
}
exit_message() {
local exit_val="$1"
echo
if [ $exit_val == 0 ]; then
echo "Success, tests pass!"
else
echo "Tests failed!" 1>&2
fi
}
run_tests_on_vm() {
local vm="$1"
run_vagrant "$vm"
run_tests "$vm"
local tests_exit_value="$?"
stop_vagrant "$vm"
if [ $tests_exit_value -gt 0 ]; then
register_failing_specs
fi
}
main() {
run_tests_on_vm "ubuntu_two_five"
exit_message "$EXIT_VALUE"
exit "$EXIT_VALUE"
}
main