xref: /aosp_15_r20/external/autotest/tko/parsers/test/execute_parser.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1#!/usr/bin/python3
2"""Reexecute parser in scenario and store the result at specified tag.
3"""
4
5from __future__ import absolute_import
6from __future__ import division
7from __future__ import print_function
8import optparse, sys
9from os import path
10import common
11from autotest_lib.tko.parsers.test import scenario_base
12
13usage = 'usage: %prog [options] scenario_dirpath parser_result_tag'
14parser = optparse.OptionParser(usage=usage)
15
16
17def main():
18    (options, args) = parser.parse_args()
19    if len(args) < 2:
20        parser.print_help()
21        sys.exit(1)
22
23    scenario_dirpath = path.normpath(args[0])
24    parser_result_tag = args[1]
25
26    if not path.exists(scenario_dirpath) or not path.isdir(scenario_dirpath):
27        print('Invalid scenarios_dirpath:', scenario_dirpath)
28        parser.print_help()
29        sys.exit(1)
30
31    tempdir, results_dirpath = scenario_base.load_results_dir(scenario_dirpath)
32    harness = scenario_base.new_parser_harness(results_dirpath)
33    try:
34        parser_result = harness.execute()
35    except Exception as e:
36        parser_result = e
37    scenario_base.store_parser_result(
38        scenario_dirpath, parser_result, parser_result_tag)
39    tempdir.clean()
40
41
42if __name__ == '__main__':
43    main()
44