[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