ci: ArgumentParser receives the args from the main parameters
authorPablo Saavedra <psaavedra@igalia.com>
Tue, 5 May 2020 13:08:04 +0000 (15:08 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 18 May 2020 17:27:42 +0000 (17:27 +0000)
Change the main function to receive the args parameter from
sys.argv[1:]. The args parameter will be passed to the
ArgumentParser.parse_args() function as argument.

This change provides an easier  main() function signature to use
with pythonic testsuites.

Signed-off-by: Pablo Saavedra <psaavedra@igalia.com>
Reviewed-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4916>

.gitlab-ci/tracie/tracie.py

index d1a1c563021c7e10548f06a63f2ed2ffe1346dad..d2c0d7355d9a7ee155b726e5fd241bc42098a88f 100644 (file)
@@ -137,16 +137,9 @@ def gitlab_check_trace(project_url, repo_commit, device_name, trace, expectation
 
     return ok, result
 
-def main():
-    parser = argparse.ArgumentParser()
-    parser.add_argument('--file', required=True,
-                        help='the name of the traces.yml file listing traces and their checksums for each device')
-    parser.add_argument('--device-name', required=True,
-                        help="the name of the graphics device used to replay traces")
-
-    args = parser.parse_args()
+def run(filename, device_name):
 
-    with open(args.file, 'r') as f:
+    with open(filename, 'r') as f:
         y = yaml.safe_load(f)
 
     if "traces-db" in y:
@@ -161,8 +154,10 @@ def main():
     results = {}
     for trace in traces:
         for expectation in trace['expectations']:
-            if expectation['device'] == args.device_name:
-                ok, result = gitlab_check_trace(project_url, commit_id, args.device_name, trace, expectation)
+            if expectation['device'] == device_name:
+                ok, result = gitlab_check_trace(project_url, commit_id,
+                                                device_name, trace,
+                                                expectation)
                 all_ok = all_ok and ok
                 results.update(result)
 
@@ -170,8 +165,18 @@ def main():
     with open(os.path.join(RESULTS_PATH, 'results.yml'), 'w') as f:
         yaml.safe_dump(results, f, default_flow_style=False)
 
+    return all_ok
 
-    sys.exit(0 if all_ok else 1)
+def main(args):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--file', required=True,
+                        help='the name of the traces.yml file listing traces and their checksums for each device')
+    parser.add_argument('--device-name', required=True,
+                        help="the name of the graphics device used to replay traces")
+
+    args = parser.parse_args(args)
+    return run(args.file, args.device_name)
 
 if __name__ == "__main__":
-    main()
+    all_ok = main(sys.argv[1:])
+    sys.exit(0 if all_ok else 1)