1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
#!/bin/sh
set -e
. ../../dttools/test/test_runner_common.sh
import_config_val CCTOOLS_PYTHON_TEST_EXEC
import_config_val CCTOOLS_PYTHON_TEST_DIR
export PYTHONPATH=$(pwd)/../../test_support/python_modules/${CCTOOLS_PYTHON_TEST_DIR}:$PYTHONPATH
export PATH=$(dirname "${CCTOOLS_PYTHON_TEST_EXEC}"):$PATH
STATUS_FILE=vine.status
PORT_FILE=vine.port
check_needed()
{
[ -n "${CCTOOLS_PYTHON_TEST_EXEC}" ] || return 1
"${CCTOOLS_PYTHON_TEST_EXEC}" -c "import cloudpickle" || return 1
return 0
}
prepare()
{
rm -f $STATUS_FILE
rm -f $PORT_FILE
return 0
}
run()
{
# send taskvine to the background, saving its exit status.
( ${CCTOOLS_PYTHON_TEST_EXEC} vine_python_task.py $PORT_FILE; echo $? > $STATUS_FILE) &
# wait at most 5 seconds for vine to find a port.
wait_for_file_creation $PORT_FILE 5
run_taskvine_worker $PORT_FILE worker.log
# wait for vine to exit.
wait_for_file_creation $STATUS_FILE 5
# retrieve taskvine exit status
status=$(cat $STATUS_FILE)
if [ $status -ne 0 ]
then
exit 1
fi
exit 0
}
clean()
{
rm -f $STATUS_FILE
rm -f $PORT_FILE
rm -rf vine-run-info
exit 0
}
dispatch "$@"
# vim: set noexpandtab tabstop=4:
|