git-upstream/functional-tests/run_tests.sh

96 lines
1.9 KiB
Bash

#!/bin/bash
BASE_DIR=$(cd $(dirname $0); pwd -P)
INSTALL_DIR=$(dirname $BASE_DIR)
TIME_STAMP=$(date +%Y%m%d%H%M%S)
export BASE_TEST_DIR=$(mktemp -d $BASE_DIR/test-$TIME_STAMP-XXXX)
# Include and run common test functions and initializations
source $BASE_DIR/libs/logging.lib
export VERBOSITY="${VERBOSITY:-INFO}"
set_verbority $VERBOSITY
if [ -n "$LEAVE_DIR" -a "$LEAVE_DIR" == "yes" ]; then
export LEAVE_DIR="yes"
else
unset LEAVE_DIR
fi
function check_app() {
if [ $# -ne 1 ]; then
log ERROR "Invalid number of argument! \
(${BASH_SOURCE[1]##*/} ${BASH_LINENO[0]}::check_app())"
exit 127
fi
local app=$1
if [ ! -x $(which $app) ]; then
log ERROR "App '$app' not found"
exit 127
fi
return 0
}
function _clean_up() {
log DEBUG "Cleaning up"
# Deactivate virtualenv
log DEBUG "Deactivate virtualenv"
deactivate >/dev/null 2>&1
if [ -z "$LEAVE_DIR" ]; then
log DEBUG "Removing base test directory"
rm -rf $BASE_TEST_DIR
fi
}
# Define an handler for clean_up
trap "_clean_up; exit 0" EXIT
# ----- Start
log DEBUG "Initializing testbed"
check_app virtualenv
log DEBUG "Creating virtualenv for git-upstream"
rm -rf $BASE_TEST_DIR/virtualenv >/dev/null 2>&1
virtualenv $BASE_TEST_DIR/virtualenv >/dev/null 2>&1
if [ $? -ne 0 ]; then
log ERROR "Virtualenv creation failed"
exit 1
fi
log DEBUG "Activating virtualenv for git-upstream"
source $BASE_TEST_DIR/virtualenv/bin/activate
if [ $? -ne 0 ]; then
log ERROR "Virtualenv activation failed"
exit 1
fi
log DEBUG "Installing git-upstream"
easy_install -q $INSTALL_DIR >/dev/null 2>&1
if [ $? -ne 0 ]; then
log ERROR "git-upstream installation failed!"
exit 1
fi
if [ "$#" -ge "1" ]; then
for test_number in "$@"; do
for test in $(ls $test_number-test*); do
$BASE_DIR/$test
done
done
else
for test in $(ls [[:digit:]][[:digit:]][[:digit:]]-test*); do
$BASE_DIR/$test
done
fi