Author: kpvdr
Date: 2009-07-17 14:22:09 -0400 (Fri, 17 Jul 2009)
New Revision: 3509
Modified:
store/trunk/cpp/tests/cluster/run_cluster_tests
Log:
Improvement to cluster test script interface for ptolemy
Modified: store/trunk/cpp/tests/cluster/run_cluster_tests
===================================================================
--- store/trunk/cpp/tests/cluster/run_cluster_tests 2009-07-17 14:06:05 UTC (rev 3508)
+++ store/trunk/cpp/tests/cluster/run_cluster_tests 2009-07-17 18:22:09 UTC (rev 3509)
@@ -21,6 +21,67 @@
#
# The GNU Lesser General Public License is available in the file COPYING.
+# Check that an environment var is set (ie non-zero length)
+checkvar()
+{
+ local loc_VAR=$1
+ if test -z ${!loc_VAR}; then
+ echo "WARNING: environment variable ${loc_VAR} not set."
+ return 1
+ fi
+ return 0
+}
+
+# Check a list of paths (each can contain ':'-separated sub-list) is set and
valid (ie each path exists as a dir)
+checkpaths()
+{
+ local loc_PATHS=$@
+ for path in ${loc_PATHS}; do
+ 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
+}
+
+# Check that a list of libs is set and valid (ie each lib exists as an executable file)
+checklibs()
+{
+ local loc_LIBS=$@
+ for lib in ${loc_LIBS[@]}; do
+ checkvar ${lib}
+ if test $? == 0; then
+ if test ! -x ${!lib}; then
+ echo "WARNING: Library ${lib}=${!lib} not found."
+ fi
+ fi
+ done
+}
+
+# Check that a list of executable is set and valid (ie each exec exists as an executable
file)
+checkexecs()
+{
+ local loc_EXECS=$@
+ for exec in ${loc_EXECS[@]}; do
+ 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
+}
+
+#-----------------
+
srcdir=`dirname $0`
if test x$1 == x"LONG_TEST"; then
@@ -52,45 +113,62 @@
fi
# QPID_DIR is defined for source tree builds because of the --with-qpid-checkout config
parameter
+# If set, then set all the env vars from the correct places in the svn source tree.
if test "${QPID_DIR}" -a -d ${QPID_DIR} ; then
- # Source tree path
- CLUSTER_DIR=${QPID_DIR}/cpp/src/tests
- CPP_CLUSTER_EXEC=cluster_test
+ # Paths and dirs
export PYTHONPATH=${QPID_DIR}/python:${abs_srcdir}
- export QPIDD_EXEC=${QPID_DIR}/cpp/src/qpidd
+
+ # Libraries
export CLUSTER_LIB=${QPID_DIR}/cpp/src/.libs/cluster.so
export TEST_STORE_LIB=${QPID_DIR}/cpp/src/tests/.libs/test_store.so
+
+ # Executables
+ CPP_CLUSTER_EXEC=${QPID_DIR}/cpp/src/tests/cluster_test
+ if test ${LONG_TEST}; then
+ PYTHON_CLUSTER_EXEC=${QPID_DIR}/cpp/src/tests/long_cluster_tests.py
+ else
+ PYTHON_CLUSTER_EXEC=${QPID_DIR}/cpp/src/tests/cluster_tests.py
+ fi
+ export QPIDD_EXEC=${QPID_DIR}/cpp/src/qpidd
export QPID_CONFIG_EXEC=${QPID_DIR}/python/commands/qpid-config
export QPID_ROUTE_EXEC=${QPID_DIR}/python/commands/qpid-route
export RECEIVER_EXEC=${QPID_DIR}/cpp/src/tests/receiver
export SENDER_EXEC=${QPID_DIR}/cpp/src/tests/sender
else
- # Check expected environment vars are set
- VARS=(CLUSTER_DIR CPP_CLUSTER_EXEC PYTHONPATH QPIDD_EXEC CLUSTER_LIB TEST_STORE_LIB
QPID_CONFIG_EXEC QPID_ROUTE_EXEC RECEIVER_EXEC SENDER_EXEC)
- for var in ${VARS[@]}; do
- if test -z ${!var}; then
- echo "WARNING: environment variable ${var} not set."
- fi
- done
- LIBS=(CLUSTER_LIB TEST_STORE_LIB)
- for lib in ${LIBS[@]}; do
- if test -x ${!lib}; then
- echo "WARNING: library \"${lib}\" not found."
- fi
- done
- EXECS=(QPIDD_EXEC QPID_CONFIG_EXEC QPID_ROUTE_EXEC RECEIVER_EXEC SENDER_EXEC)
- for exec in ${EXECS[@]}; do
- if test -x ${!exec}; then
- echo "WARNING: executable \"${exec}\" not found."
- fi
- done
+ # These four env vars must be set prior to calling this script
+ checkpaths QPID_BIN_DIR QPID_SBIN_DIR QPID_LIB_DIR QPID_LIBEXEC_DIR
+
+ # Paths and dirs
+ export PYTHONPATH=${QPID_LIB_DIR}/python:${QPID_LIB_DIR}/python2.4
+
+ # Libraries
+ export CLUSTER_LIB=${QPID_LIB_DIR}/cluster.so
+ export TEST_STORE_LIB=${QPID_LIB_DIR}/test_store.so
+
+ # Executables
+ CPP_CLUSTER_EXEC=${QPID_LIBEXEC_DIR}/cluster_test
+ if test ${LONG_TEST}; then
+ PYTHON_CLUSTER_EXEC=${QPID_LIBEXEC_DIR}/long_cluster_tests.py
+ else
+ PYTHON_CLUSTER_EXEC=${QPID_LIBEXEC_DIR}/cluster_tests.py
+ fi
+ export QPIDD_EXEC=${QPID_SBIN_DIR}/qpidd
+ export QPID_CONFIG_EXEC=${QPID_BIN_DIR}/qpid-config
+ export QPID_ROUTE_EXEC=${QPID_BIN_DIR}/qpid-route
+ export RECEIVER_EXEC=${QPID_LIBEXEC_DIR}/receiver
+ export SENDER_EXEC=${QPID_LIBEXEC_DIR}/sender
fi
export STORE_LIB=${abs_srcdir}/../../lib/.libs/msgstore.so
-echo "Running C++ cluster tests..."
+# Check expected environment vars are set
+checkpaths PYTHONPATH
+checklibs CLUSTER_LIB TEST_STORE_LIB STORE_LIB
+checkexecs CPP_CLUSTER_EXEC PYTHON_CLUSTER_EXEC QPIDD_EXEC QPID_CONFIG_EXEC
QPID_ROUTE_EXEC RECEIVER_EXEC SENDER_EXEC
+
# Run the C++ cluster tests
if test ! ${LONG_TEST}; then
- sg ais -c "${CLUSTER_DIR}/${CPP_CLUSTER_EXEC}"
+ echo "Running C++ cluster tests..."
+ sg ais -c "${CPP_CLUSTER_EXEC}"
RETCODE=$?
if test x${RETCODE} != x0; then
exit 1;
@@ -127,14 +205,8 @@
fi
export TMP_DATA_DIR
-if test ${LONG_TEST}; then
- PYTHON_CLUSTER_EXEC=long_cluster_tests.py
-else
- PYTHON_CLUSTER_EXEC=cluster_tests.py
-fi
-
echo "Running Python cluster tests..."
-sg ais -c "${CLUSTER_DIR}/${PYTHON_CLUSTER_EXEC} -v"
+sg ais -c "${PYTHON_CLUSTER_EXEC} -v"
RETCODE=$?
if test x${RETCODE} != x0; then
exit 1;
Show replies by date