Compare commits

...

1 Commits

Author SHA1 Message Date
antoniofilipovic
c9e848fe75 extend capabilites of testing 2023-09-06 12:54:40 +02:00
2 changed files with 27 additions and 6 deletions

View File

@@ -5,7 +5,7 @@ cd "$SCRIPT_DIR"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../libs/mgclient/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../libs/mgclient/lib
print_help() { print_help() {
echo -e "$0 ["workload name string"]" echo -e "$0 ["workload name string"]" or "$0 ["workload dir string"]" "*" or "$0 ["workload dir string"]" "[workload name string]"
echo -e "" echo -e ""
echo -e " NOTE: some tests require enterprise licence key," echo -e " NOTE: some tests require enterprise licence key,"
echo -e " to run those define the folowing env vars:" echo -e " to run those define the folowing env vars:"
@@ -27,7 +27,7 @@ if [ "$#" -eq 0 ]; then
# NOTE: If you want to run all tests under specific folder/section just # NOTE: If you want to run all tests under specific folder/section just
# replace the dot (root directory below) with the folder name, e.g. # replace the dot (root directory below) with the folder name, e.g.
# `--workloads-root-directory replication`. # `--workloads-root-directory replication`.
python3 runner.py --workloads-root-directory . python3 runner.py --workloads-root-directory . --workload-name "import_mode"
elif [ "$#" -eq 1 ]; then elif [ "$#" -eq 1 ]; then
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
print_help print_help
@@ -37,6 +37,14 @@ elif [ "$#" -eq 1 ]; then
# workloads.yaml file. E.g. `streams/workloads.yaml` has a list of # workloads.yaml file. E.g. `streams/workloads.yaml` has a list of
# `workloads:` and each workload has it's `-name`. # `workloads:` and each workload has it's `-name`.
python3 runner.py --workloads-root-directory . --workload-name "$1" python3 runner.py --workloads-root-directory . --workload-name "$1"
elif [ "$#" -eq 2 ]; then
check_license
# NOTE: --workload-dir is whole directory. If you want to test whole dir
# run ./run.sh triggers "*"
# --workload-name comes from each individual folder/section
# workloads.yaml file. E.g. `streams/workloads.yaml` has a list of
# `workloads:` and each workload has it's `-name`.
python3 runner.py --workloads-root-directory . --workload-dir "$1" --workload-name "$2"
else else
print_help print_help
fi fi

View File

@@ -16,6 +16,7 @@ import subprocess
import time import time
from argparse import ArgumentParser from argparse import ArgumentParser
from pathlib import Path from pathlib import Path
from typing import List
import interactive_mg_runner import interactive_mg_runner
import yaml import yaml
@@ -27,27 +28,39 @@ BUILD_DIR = os.path.join(PROJECT_DIR, "build")
log = logging.getLogger("memgraph.tests.e2e") log = logging.getLogger("memgraph.tests.e2e")
class Workload:
def __init__(self, dir_name: str, yaml_obj) -> None:
self._dir_name = dir_name
self._yaml_obj = yaml_obj
def load_args(): def load_args():
parser = ArgumentParser() parser = ArgumentParser()
parser.add_argument("--workloads-root-directory", required=True) parser.add_argument("--workloads-root-directory", required=True)
parser.add_argument("--workload-name", default=None, required=False) parser.add_argument("--workload-name", default=None, required=False)
parser.add_argument("--workload-dir", default=None, required=False)
parser.add_argument("--debug", default=False, required=False) parser.add_argument("--debug", default=False, required=False)
return parser.parse_args() return parser.parse_args()
def load_workloads(root_directory): def load_workloads(root_directory) -> List[Workload]:
workloads = [] workloads = []
for file in Path(root_directory).rglob("*.yaml"): for file in Path(root_directory).rglob("*.yaml"):
with open(file, "r") as f: with open(file, "r") as f:
workloads.extend(yaml.load(f, Loader=yaml.FullLoader)["workloads"]) obj = yaml.load(f, Loader=yaml.FullLoader)["workloads"]
for o in obj:
workloads.append(Workload(file.parent.absolute().name, o))
return workloads return workloads
def run(args): def run(args):
workloads = load_workloads(args.workloads_root_directory) workloads = load_workloads(args.workloads_root_directory)
for workload in workloads: for workload_obj in workloads:
workload = workload_obj._yaml_obj
workload_name = workload["name"] workload_name = workload["name"]
if args.workload_name is not None and args.workload_name != workload_name: if args.workload_dir is not None and args.workload_dir != workload_obj._dir_name:
continue
if args.workload_name is not None and args.workload_name != "*" and args.workload_name != workload_name:
continue continue
log.info("%s STARTED.", workload_name) log.info("%s STARTED.", workload_name)