return True
-def update_test_file(args, test):
+def update_test_file(args, test, autogenerated_note):
with open(test) as fd:
input_lines = [l.rstrip() for l in fd]
- script_name = os.path.basename(__file__)
- first_line = input_lines[0] if input_lines else ""
- if 'autogenerated' in first_line and script_name not in first_line:
- common.warn("Skipping test which wasn't autogenerated by " +
- script_name + ": " + test)
- return
-
- if args.update_only:
- if not first_line or 'autogenerated' not in first_line:
- common.warn("Skipping test which isn't autogenerated: " + test)
- return
-
triple_in_ir = find_triple_in_ir(input_lines, args.verbose)
run_lines = common.find_run_lines(test, input_lines)
run_list = build_run_list(test, run_lines, args.verbose)
log('Extracted LLC cmd: llc {}'.format(llc_args), args.verbose)
log('Extracted FileCheck prefixes: {}'.format(prefixes), args.verbose)
- raw_tool_output = args.llc(llc_args, test)
+ raw_tool_output = args.llc_binary(llc_args, test)
if not triple_in_cmd and not triple_in_ir:
common.warn('No triple found: skipping file', test_file=test)
return
prefix_set = set([prefix for run in run_list for prefix in run.prefixes])
log('Rewriting FileCheck prefixes: {}'.format(prefix_set), args.verbose)
- comment_char = '#' if test.endswith('.mir') else ';'
- autogenerated_note = ('{} NOTE: Assertions have been autogenerated by '
- 'utils/{}'.format(comment_char, script_name))
output_lines = []
output_lines.append(autogenerated_note)
def main():
parser = argparse.ArgumentParser(
description=__doc__, formatter_class=argparse.RawTextHelpFormatter)
- parser.add_argument('--llc-binary', dest='llc', default='llc', type=LLC,
+ parser.add_argument('--llc-binary', default='llc', type=LLC,
help='The "llc" binary to generate the test case with')
parser.add_argument('--print-fixed-stack', action='store_true',
help='Add check lines for fixedStack')
parser.add_argument('tests', nargs='+')
args = common.parse_commandline_args(parser)
- test_paths = [test for pattern in args.tests for test in glob.glob(pattern)]
- for test in test_paths:
+ script_name = os.path.basename(__file__)
+ for ti in common.itertests(args.tests, parser,
+ script_name='utils/' + script_name):
try:
- update_test_file(args, test)
+ update_test_file(ti.args, ti.path, ti.test_autogenerated_note)
except Exception:
- common.warn('Error processing file', test_file=test)
+ common.warn('Error processing file', test_file=ti.path)
raise