[llvm] 33786b6 - Make update_any_test_check.py script accepting @listfile CL argument. (#86800)

via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 18 10:04:09 PDT 2024


Author: Valery Pykhtin
Date: 2024-04-18T19:04:05+02:00
New Revision: 33786b62bae4cec1c921f7c017aa6cdc644ced39

URL: https://github.com/llvm/llvm-project/commit/33786b62bae4cec1c921f7c017aa6cdc644ced39
DIFF: https://github.com/llvm/llvm-project/commit/33786b62bae4cec1c921f7c017aa6cdc644ced39.diff

LOG: Make update_any_test_check.py script accepting @listfile CL argument. (#86800)

Usage: `update_any_test_check.py @my_list_of_tests`
where my_list_of_tests is a file containing list of tests to update.

Added: 
    

Modified: 
    llvm/utils/update_any_test_checks.py

Removed: 
    


################################################################################
diff  --git a/llvm/utils/update_any_test_checks.py b/llvm/utils/update_any_test_checks.py
index 2ad852d710c07a..e8eef1a46c504f 100755
--- a/llvm/utils/update_any_test_checks.py
+++ b/llvm/utils/update_any_test_checks.py
@@ -4,7 +4,8 @@
 
 Given a list of test files, this script will invoke the correct
 update_test_checks-style script, skipping any tests which have not previously
-had assertions autogenerated.
+had assertions autogenerated. If test name starts with '@' it's treated as
+a name of file containing test list.
 """
 
 from __future__ import print_function
@@ -40,6 +41,25 @@ def run_utc_tool(utc_name, utc_tool, testname):
     return (result.returncode, result.stdout, result.stderr)
 
 
+def read_arguments_from_file(filename):
+    try:
+        with open(filename, "r") as file:
+            return [line.rstrip() for line in file.readlines()]
+    except FileNotFoundError:
+        print(f"Error: File '{filename}' not found.")
+        sys.exit(1)
+
+
+def expand_listfile_args(arg_list):
+    exp_arg_list = []
+    for arg in arg_list:
+        if arg.startswith("@"):
+            exp_arg_list += read_arguments_from_file(arg[1:])
+        else:
+            exp_arg_list.append(arg)
+    return exp_arg_list
+
+
 def main():
     from argparse import RawTextHelpFormatter
 
@@ -72,10 +92,12 @@ def main():
     utc_tools = {}
     have_error = False
 
+    tests = expand_listfile_args(config.tests)
+
     with ThreadPoolExecutor(max_workers=config.jobs) as executor:
         jobs = []
 
-        for testname in config.tests:
+        for testname in tests:
             with open(testname, "r") as f:
                 header = f.readline().strip()
                 m = RE_ASSERTIONS.search(header)


        


More information about the llvm-commits mailing list