| #!/usr/bin/python2 -i |
| """Inspector for parser_result.store from specified scenerio package. |
| |
| Load in parser_result.store as 'sto' and launch interactive interp. |
| Define some helper functions as required. |
| """ |
| |
| import optparse, os, sys |
| from os import path |
| import common |
| from autotest_lib.tko.parsers.test import scenario_base |
| |
| |
| usage = 'usage: %prog [options] scenario_dirpath' |
| parser = optparse.OptionParser(usage=usage) |
| parser.add_option("-w", action="store_true", dest="open_for_write") |
| |
| (options, args) = parser.parse_args() |
| if len(args) < 1: |
| parser.print_help() |
| sys.exit(1) |
| |
| scenario_dirpath = path.normpath(args[0]) |
| if not path.exists(scenario_dirpath) or not path.isdir(scenario_dirpath): |
| print 'Invalid scenarios_dirpath:', scenario_dirpath |
| parser.print_help() |
| sys.exit(1) |
| |
| sto = scenario_base.load_parser_result_store( |
| scenario_dirpath, options.open_for_write) |
| |
| |
| def compare(left_tag, right_tag): |
| missing = set([left_tag, right_tag]).difference(sto.keys()) |
| if missing: |
| print 'Store does not have the following tag(s): ', ','.join(missing) |
| print 'Doing nothing.' |
| return |
| |
| for diffline in scenario_base.compare_parser_results( |
| sto[left_tag], sto[right_tag]): |
| print diffline |