From a4d32f43d3b51a7c5eafe506bc79f331011d55aa Mon Sep 17 00:00:00 2001
From: Florian Fischer <florian.fischer@muhq.space>
Date: Sun, 9 May 2021 11:45:19 +0200
Subject: [PATCH] [eval] fail hard if a flavor selector does not select any
 available flavor

---
 eval.py | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/eval.py b/eval.py
index 61efc42..3e0ab5a 100755
--- a/eval.py
+++ b/eval.py
@@ -20,6 +20,12 @@ ARTIFACT_DESC = subprocess.check_output(
     'git describe --dirty --always'.split(), cwd=ROOT_DIR, text=True)[:-1]
 
 
+def err(msg: str):
+    """print error message and exit with statsu 1"""
+    print(f'ERROR: {msg}', file=sys.stderr)
+    sys.exit(1)
+
+
 def emper_create_env_worker_count(worker_count):
     return f'EMPER_WORKER_COUNT={worker_count}'
 
@@ -720,6 +726,22 @@ if __name__ == '__main__':
     _sizes = args.sizes or SIZES
     ARGS = list(itertools.product(_cons, _sizes))
 
+    # select emper flavors to evaluate
+    selected_flavors = EMPER_FLAVORS
+    if args.flavors:
+        filtered_flavors = {}
+        for selected_flavor in args.flavors:
+            selection = {
+                f: selected_flavors[f]
+                for f in fnmatch.filter(selected_flavors.keys(),
+                                        selected_flavor)
+            }
+            if not selection:
+                err(f'{selected_flavor} does not select any available flavor')
+            filtered_flavors.update(selection)
+
+        selected_flavors = filtered_flavors
+
     print("Building the artifact ...")
     make_cmd = ['make']
     if not args.verbose:
@@ -743,18 +765,6 @@ if __name__ == '__main__':
     write_desc(DATA_DIR, verbose=args.verbose)
     prepare_client(args.verbose)
 
-    selected_flavors = EMPER_FLAVORS
-    if args.flavors:
-        filtered_flavors = {}
-        for selected_flavor in args.flavors:
-            filtered_flavors.update({
-                f: selected_flavors[f]
-                for f in fnmatch.filter(selected_flavors.keys(),
-                                        selected_flavor)
-            })
-
-        selected_flavors = filtered_flavors
-
     # generate emper flavors
     if 'emper' in SERVER_CMDS:
         prepare_emper_flavors(selected_flavors, args.verbose)
-- 
GitLab