#!/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 cd ${memgraph_build_dir} # binary is available after the build binary_name=memgraph # 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" "$memgraph_build_dir/$binary_name" 1>&2 & background_pid=$! function cleanup_and_exit { kill -9 $background_pid sleep 2 exit $1 } sleep 2 python3 tck_engine/test_executor.py $tck_flags cleanup_and_exit $?