diff options
author | Kim van der Riet <kpvdr@apache.org> | 2013-02-28 16:14:30 +0000 |
---|---|---|
committer | Kim van der Riet <kpvdr@apache.org> | 2013-02-28 16:14:30 +0000 |
commit | 9c73ef7a5ac10acd6a50d5d52bd721fc2faa5919 (patch) | |
tree | 2a890e1df09e5b896a9b4168a7b22648f559a1f2 /cpp/src/tests/legacystore/tests_env.sh | |
parent | 172d9b2a16cfb817bbe632d050acba7e31401cd2 (diff) | |
download | qpid-python-asyncstore.tar.gz |
Update from trunk r1375509 through r1450773asyncstore
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/asyncstore@1451244 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/legacystore/tests_env.sh')
-rw-r--r-- | cpp/src/tests/legacystore/tests_env.sh | 260 |
1 files changed, 260 insertions, 0 deletions
diff --git a/cpp/src/tests/legacystore/tests_env.sh b/cpp/src/tests/legacystore/tests_env.sh new file mode 100644 index 0000000000..30d255b87c --- /dev/null +++ b/cpp/src/tests/legacystore/tests_env.sh @@ -0,0 +1,260 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# --- Function definitions --- + + +func_check_required_env () +#------------------------- +# Check that EITHER: +# QPID_DIR is set (for running against svn QPID) +# OR +# QPID_PREFIX is set (for running against installed QPID +# Will exit with error code 1 if neither of these is defined. +# Params: None +# Returns: 0 if env vars ok, 1 otherwise +{ + if test -z "${QPID_DIR}" -a -z "${QPID_PREFIX}"; then + # Try to find qpidd in the normal installed location + if test -x /usr/sbin/qpidd; then + QPID_PREFIX=/usr + else + echo "ERROR: Could not find installed Qpid" + echo "Either of the following must be set in the environment for this script to run:" + echo " QPID_DIR for running against a Qpid svn build" + echo " QPID_PREFIX for running against an installed Qpid" + return 1 + fi + fi + return 0 +} + + +func_check_qpid_python () +#------------------------ +# Check that Qpid python environment is ok +# Params: None +# Returns: 0 if Python environment is ok; 1 otherwise +{ + if ! python -c "import qpid" ; then + cat <<EOF + + =========== WARNING: PYTHON TESTS DISABLED ============== + + Unable to load python qpid module - skipping python tests. + + PYTHONPATH=${PYTHONPATH} + + =========================================================== + +EOF + return 1 + fi + return 0 +} + + +func_set_env () +#-------------- +# Set up the environment based on value of ${QPID_DIR}: if ${QPID_DIR} exists, assume a svn checkout, +# otherwise set up for an installed or prefix test. +# Params: None +# Returns: Nothing +{ + if test "${QPID_DIR}" -a -d "${QPID_DIR}" ; then + # QPID_DIR is defined for source tree builds by the --with-qpid-checkout configure option. + # QPID_BLD is defined as the build directory, either $QPID_DIR/cpp or separately specified with + # the --with-qpid-build option for VPATH builds. + + # Check QPID_BLD is also set + if test -z ${QPID_BLD}; then + QPID_BLD="${QPID_DIR}/cpp" + fi + + # Paths and dirs + #if test -z ${abs_srcdir}; then + # abs_srcdir=`pwd` + #fi + source $QPID_BLD/src/tests/test_env.sh + # Override these two settings from test_env.sh: + export RECEIVER_EXEC=$QPID_TEST_EXEC_DIR/qpid-receive + export SENDER_EXEC=$QPID_TEST_EXEC_DIR/qpid-send + + echo "abs_srcdir=$abs_srcdir" + export STORE_LIB="`pwd`/../lib/.libs/msgstore.so" + export STORE_ENABLE=1 + export CLUSTER_LIB="${QPID_BLD}/src/.libs/cluster.so" + + PYTHON_DIR="${QPID_DIR}/python" + export PYTHONPATH="${PYTHONPATH}":"${PYTHON_DIR}":"${QPID_DIR}/extras/qmf/src/py":"${QPID_DIR}/tools/src/py":"${QPID_DIR}/cpp/src/tests":"${abs_srcdir}" + + # Libraries + + # Executables + export QPIDD_EXEC="${QPID_BLD}/src/qpidd" + + # Test data + + else + # Set up the environment based on value of ${QPID_PREFIX} for testing against an installed qpid + # Alternatively, make sure ${QPID_BIN_DIR}, ${QPID_SBIN_DIR}, ${QPID_LIB_DIR} and ${QPID_LIBEXEC_DIR} are set for + # the installed location. + if test "${QPID_PREFIX}" -a -d "${QPID_PREFIX}" ; then + QPID_BIN_DIR=${QPID_PREFIX}/bin + QPID_SBIN_DIR=${QPID_PREFIX}/sbin + QPID_LIB_DIR=${QPID_PREFIX}/lib + QPID_LIBEXEC_DIR=${QPID_PREFIX}/libexec + fi + + # These four env vars must be set prior to calling this script + func_checkpaths QPID_BIN_DIR QPID_SBIN_DIR QPID_LIB_DIR QPID_LIBEXEC_DIR + + # Paths and dirs + export PYTHON_DIR="${QPID_BIN_DIR}" + export PYTHONPATH="${PYTHONPATH}":"${QPID_LIB_DIR}/python":"${QPID_LIBEXEC_DIR}/qpid/tests":"${QPID_LIB_DIR}/python2.4" + + + # Libraries + + # Executables + export QPIDD_EXEC="${QPID_SBIN_DIR}/qpidd" + + # Test Data + + fi +} + + +func_mk_data_dir () +#------------------ +# Create a data dir at ${TMP_DATA_DIR} if not present, clear it otherwise. +# Set TMP_DATA_DIR if it is not set. +# Params: None +# Returns: Nothing +{ + if test -z "${TMP_DATA_DIR}"; then + TMP_DATA_DIR=/tmp/python_tests + echo "TMP_DATA_DIR not set; using ${TMP_DATA_DIR}" + fi + + # Delete old test dirs if they exist + if test -d "${TMP_DATA_DIR}" ; then + rm -rf "${TMP_DATA_DIR}/*" + fi + mkdir -p "${TMP_DATA_DIR}" + export TMP_DATA_DIR +} + + +func_checkvar () +#--------------- +# Check that an environment var is set (ie non-zero length) +# Params: $1 - env var to be checked +# Returns: 0 = env var is set (ie non-zero length) +# 1 = env var is not set +{ + local loc_VAR=$1 + if test -z ${!loc_VAR}; then + echo "WARNING: environment variable ${loc_VAR} not set." + return 1 + fi + return 0 +} + + +func_checkpaths () +#----------------- +# Check a list of paths (each can contain ':'-separated sub-list) is set and valid (ie each path exists as a dir) +# Params: $@ - List of path env vars to be checked +# Returns: Nothing +{ + local loc_PATHS=$@ + for path in ${loc_PATHS}; do + func_checkvar ${path} + if test $? == 0; then + local temp_IFS=${IFS} + IFS=":" + local pl=${!path} + for p in ${pl[@]}; do + if test ! -d ${p}; then + echo "WARNING: Directory ${p} in var ${path} not found." + fi + done + IFS=${temp_IFS} + fi + done +} + + +func_checklibs () +#---------------- +# Check that a list of libs is set and valid (ie each lib exists as an executable file) +# Params: $@ - List of lib values to be checked +# Returns: Nothing +{ + local loc_LIBS=$@ + for lib in ${loc_LIBS[@]}; do + func_checkvar ${lib} + if test $? == 0; then + if test ! -x ${!lib}; then + echo "WARNING: Library ${lib}=${!lib} not found." + fi + fi + done +} + + +func_checkexecs () +#----------------- +# Check that a list of executable is set and valid (ie each exec exists as an executable file) +# Params: $@ - List of exec values to be checked +# Returns: Nothing +{ + local loc_EXECS=$@ + for exec in ${loc_EXECS[@]}; do + func_checkvar ${exec} + if test $? == 0; then + if test ! -x ${!exec}; then + echo "WARNING: Executable ${exec}=${!exec} not found or is not executable." + fi + fi + done +} + + +#--- Start of script --- + +func_check_required_env || exit 1 # Cannot run, exit with error + +srcdir=`dirname $0` +if test -z ${abs_srcdir}; then + abs_srcdir=${srcdir} +fi + +func_set_env +func_check_qpid_python || exit 0 # A warning, not a failure. +func_mk_data_dir + +# Check expected environment vars are set +func_checkpaths PYTHON_DIR PYTHONPATH TMP_DATA_DIR +func_checklibs STORE_LIB CLUSTER_LIB +func_checkexecs QPIDD_EXEC QPID_CONFIG_EXEC QPID_ROUTE_EXEC SENDER_EXEC RECEIVER_EXEC + +FAILING_PYTHON_TESTS="${abs_srcdir}/failing_python_tests.txt" + |