fix(perpatch): Sort comparison output by test name
[csit.git] / resources / libraries / python / model / parse.py
index b2e8da6..1e0aebf 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2023 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -54,6 +54,9 @@ def parse(dirpath: str, fake_value: float = 1.0) -> Dict[str, List[float]]:
     Units are ignored, as both parent and current are tested
     with the same CSIT code so the unit should be identical.
 
     Units are ignored, as both parent and current are tested
     with the same CSIT code so the unit should be identical.
 
+    The test results are sorted by test_id,
+    as the filesystem order is not deterministic enough.
+
     The result is also cached as results.json file.
 
     :param dirpath: Path to the directory tree to examine.
     The result is also cached as results.json file.
 
     :param dirpath: Path to the directory tree to examine.
@@ -103,6 +106,7 @@ def parse(dirpath: str, fake_value: float = 1.0) -> Dict[str, List[float]]:
                 results[name] = [result_object["bandwidth"]["value"]]
             else:
                 raise RuntimeError(f"Unknown result type: {result_type}")
                 results[name] = [result_object["bandwidth"]["value"]]
             else:
                 raise RuntimeError(f"Unknown result type: {result_type}")
+    results = {test_id: results[test_id] for test_id in sorted(results)}
     with open(resultpath, "wt", encoding="utf8") as file_out:
         json.dump(results, file_out, indent=1, separators=(", ", ": "))
     return results
     with open(resultpath, "wt", encoding="utf8") as file_out:
         json.dump(results, file_out, indent=1, separators=(", ", ": "))
     return results