96 lines
1.9 KiB
Bash
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
|