44 lines
1.2 KiB
Bash
Executable File
44 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
if [[ ! $# -eq 1 ]]; then
|
|
echo "Missing argument."
|
|
echo "Usage: '$0 praxis{0,1,2,3}'"
|
|
exit 1
|
|
fi
|
|
|
|
TEST_SCRIPT="$(dirname $0)/test_$1.py"
|
|
|
|
if [[ ! -e ${TEST_SCRIPT} ]]; then
|
|
echo "Requested test file ${TEST_SCRIPT} does not exist!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Packaging submission..."
|
|
PACKAGING_DIR=$(mktemp -d)
|
|
cmake -B${PACKAGING_DIR}
|
|
cmake --build ${PACKAGING_DIR} -t package_source
|
|
|
|
echo "Extracting submission..."
|
|
SOURCE_DIR=$(mktemp -d)
|
|
(cd ${SOURCE_DIR} && find ${PACKAGING_DIR} -name '*.tar.gz' | head -n1 | xargs tar -xzf)
|
|
EXTRACTED_SOURCE_DIR=$(find ${SOURCE_DIR} -maxdepth 1 -mindepth 1 -type d | head -n1)
|
|
|
|
echo "Building submission..."
|
|
BUILD_DIR=$(mktemp -d)
|
|
cmake -S"${EXTRACTED_SOURCE_DIR}" -B${BUILD_DIR}
|
|
TARGET="webserver"
|
|
EXECUTABLE="--executable ${BUILD_DIR}/webserver"
|
|
if [[ "$1" == "praxis0" ]]; then
|
|
TARGET="hello_world"
|
|
EXECUTABLE="--executable ${BUILD_DIR}/hello_world"
|
|
elif [[ "$1" == "praxis3" ]]; then
|
|
TARGET="zmq_distributor zmq_worker"
|
|
EXECUTABLE="--dist_exec ${BUILD_DIR}/zmq_distributor --work_exec ${BUILD_DIR}/zmq_worker"
|
|
fi
|
|
cmake --build ${BUILD_DIR} -t ${TARGET}
|
|
|
|
echo "Executing tests..."
|
|
python3 -m pytest -o cache_dir=${BUILD_DIR} ${TEST_SCRIPT} ${EXECUTABLE}
|