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
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 " NOTE: some tests require enterprise licence key,"
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
# replace the dot (root directory below) with the folder name, e.g.
# `--workloads-root-directory replication`.
python3 runner.py --workloads-root-directory .
python3 runner.py --workloads-root-directory . --workload-name "import_mode"
elif [ "$#" -eq 1 ]; then
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
print_help
@@ -37,6 +37,14 @@ elif [ "$#" -eq 1 ]; then
# 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-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
print_help
fi

View File

@@ -16,6 +16,7 @@ import subprocess
import time
from argparse import ArgumentParser
from pathlib import Path
from typing import List
import interactive_mg_runner
import yaml
@@ -27,27 +28,39 @@ BUILD_DIR = os.path.join(PROJECT_DIR, "build")
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():
parser = ArgumentParser()
parser.add_argument("--workloads-root-directory", required=True)
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)
return parser.parse_args()
def load_workloads(root_directory):
def load_workloads(root_directory) -> List[Workload]:
workloads = []
for file in Path(root_directory).rglob("*.yaml"):
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
def run(args):
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"]
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
log.info("%s STARTED.", workload_name)