[llvm] [RFC][utils] Add script to update failed tests (PR #131637)

via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 17 09:26:38 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {darker}-->


:warning: Python code formatter, darker found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
darker --check --diff -r 3959bbc1345b9eb99b208e816a86e6a39103c345...0fe8e8e38a7f963b2388a5c89de241dbeed778ae llvm/utils/update_failed_tests.py
``````````

</details>

<details>
<summary>
View the diff from darker here.
</summary>

``````````diff
--- update_failed_tests.py	2025-03-17 15:27:49.000000 +0000
+++ update_failed_tests.py	2025-03-17 16:26:10.299310 +0000
@@ -20,74 +20,82 @@
 
 def get_build_path():
     if os.path.basename(os.getcwd()).startswith("build"):
         build_path = os.getcwd()
     else:
-        dirs = [d for d in os.listdir('.') if os.path.isdir(d)]
-        build_dirs = [d for d in dirs if d.startswith('build')]
+        dirs = [d for d in os.listdir(".") if os.path.isdir(d)]
+        build_dirs = [d for d in dirs if d.startswith("build")]
 
         if len(build_dirs) != 1:
             print(
-                "Cannot find the build directory. Please run this script in the build directory.")
+                "Cannot find the build directory. Please run this script in the build directory."
+            )
             exit(1)
         build_path = build_dirs[0]
 
     print("The BUILD path is", build_path)
     return build_path
 
 
 def run_tool(tool_path, tool_name, tool_bin, build_path, file_path):
     print(tool_name.upper() + " updating: ", file_path)
     result = subprocess.run(
-        ["python3", tool_path, "--"+tool_name+"="+build_path+"/bin/"+tool_bin, file_path])
+        [
+            "python3",
+            tool_path,
+            "--" + tool_name + "=" + build_path + "/bin/" + tool_bin,
+            file_path,
+        ]
+    )
     return result
 
 
 def run(build_path, projetct_name, project_path, test_times_path):
     if not os.path.exists(test_times_path):
         print("No tests found for", projetct_name)
         return
 
     # read lit test records:
-    with open(test_times_path, 'r') as f:
+    with open(test_times_path, "r") as f:
         rest_tests = []
 
         for line in f:
             # split line into Time and Path
-            parts = line.strip().split(' ', 1)
+            parts = line.strip().split(" ", 1)
             run_time = float(parts[0])
             file_path = project_path + "/test/" + parts[1]
 
             # If time is negative, then it is a failed test
             if run_time < 0:
                 if not os.path.exists(file_path):
                     print("NOT FOUND:", file_path)
                     continue
 
                 # open file, read first line
-                with open(file_path, 'r') as target_file:
+                with open(file_path, "r") as target_file:
                     first_line = target_file.readline().strip()
-                if not first_line.startswith("; NOTE: Assertions") and not first_line.startswith("# NOTE: Assertions"):
+                if not first_line.startswith(
+                    "; NOTE: Assertions"
+                ) and not first_line.startswith("# NOTE: Assertions"):
                     print("\nSKIP: ", file_path)
                     continue
 
                 tool_name = first_line.split(" ")[7]
                 tool_path = llvm_path + "/" + tool_name
 
                 # call update tools
                 if "update_llc_test_checks" in tool_name:
-                    result = run_tool(tool_path, "llc", "llc",
-                                      build_path, file_path)
+                    result = run_tool(tool_path, "llc", "llc", build_path, file_path)
                 elif "update_cc_test_checks" in tool_name:
-                    result = run_tool(tool_path, "cc", "clang",
-                                      build_path, file_path)
-                elif "update_test_checks" in tool_name or "update_analyze_test_checks" in tool_name:
-                    result = run_tool(tool_path, "opt", "opt",
-                                      build_path, file_path)
+                    result = run_tool(tool_path, "cc", "clang", build_path, file_path)
+                elif (
+                    "update_test_checks" in tool_name
+                    or "update_analyze_test_checks" in tool_name
+                ):
+                    result = run_tool(tool_path, "opt", "opt", build_path, file_path)
                 elif "update_mir_test_checks" in tool_name:
-                    result = run_tool(tool_path, "llc", "llc",
-                                      build_path, file_path)
+                    result = run_tool(tool_path, "llc", "llc", build_path, file_path)
                 else:
                     print("\nUNHANDLED: ", file_path)
                     continue
 
                 if result.returncode != 0:

``````````

</details>


https://github.com/llvm/llvm-project/pull/131637


More information about the llvm-commits mailing list