Compare commits
1 Commits
cpp23
...
add-e2e-di
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9e848fe75 |
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user