memgraph/tests/qa/run
2017-06-20 15:01:11 +02:00

83 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
function print_usage_and_exit {
echo "./run --test-suite test_suite [--unstable]"
echo "Required arguments:"
echo -e " --test-suite test_suite\trun test_suite scenarios, test_suite must be test folder in tck_engine/tests."
echo "Optional arguments:"
echo -e " --unstable\trun unstable scenarios"
exit 1
}
# exit if any subcommand returns a non-zero status
set -e
# read arguments
unstable=false
while [[ $# -gt 0 ]]; do
case $1 in
--unstable)
unstable=true
shift
;;
--test-suite)
if [ $# -eq 1 ]; then
print_usage_and_exit
fi
test_suite=$2
shift
shift
;;
*)
# unknown option
print_usage_and_exit
;;
esac
done
if [[ "$test_suite" = "" ]]; then
print_usage_and_exit
fi
## build memgraph
# save the path where this script is
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
memgraph_src_dir=${script_dir}/dbms/memgraph
memgraph_build_dir=${script_dir}/dbms/memgraph/build
# activate virtualenv
source $script_dir/ve3/bin/activate
function cleanup_and_exit {
pkill -9 -f "${binary_name}"
exit $1
}
cd ${memgraph_build_dir}
# binary is available after the build
binary_name=$(find ${memgraph_build_dir}/ -maxdepth 1 -executable \
-name "memgraph*" | sort | tail -n 1)
# get full path to memgraph config for interpreted queries
config_path="${memgraph_src_dir}/config/testing.conf"
# run scenarios
cd ${script_dir}
tck_flags="--root tck_engine/tests/$test_suite
--no-side-effects --db memgraph"
if [[ $unstable = true ]]; then
tck_flags="$tck_flags --unstable"
fi
# the script has to be careful because memgraph process will be detached
set +e
# run memgraph
MEMGRAPH_CONFIG=${config_path} ${binary_name} 1>&2 &
python3 tck_engine/test_executor.py $tck_flags
cleanup_and_exit ${exit_code}