#!/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 # save the path where this script is script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" memgraph_src_dir=${script_dir}/../.. memgraph_build_dir=${memgraph_src_dir}/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) if [[ "$binary_name" == "" ]]; then echo "You must build Memgraph before running this script!" exit 1 fi # 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}