xref: /xen/scripts/xen-analysis.py
  • Home
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • current directory
1#!/usr/bin/env python3
2
3import sys
4from xen_analysis import settings, generic_analysis, cppcheck_analysis
5from xen_analysis.generic_analysis import *
6from xen_analysis.cppcheck_analysis import *
7
8PhaseExceptions = (GetMakeVarsPhaseError, ParseTagPhaseError,
9                   CppcheckDepsPhaseError, BuildPhaseError,
10                   CppcheckReportPhaseError)
11
12
13def main(argv):
14    ret_code = 0
15    settings.parse_commandline(argv)
16    try:
17        if settings.step_get_make_vars:
18            cppcheck_analysis.get_make_vars()
19        if settings.step_parse_tags:
20            generic_analysis.parse_xen_tags()
21        if settings.step_cppcheck_deps:
22            cppcheck_analysis.generate_cppcheck_deps()
23        if settings.step_build_xen:
24            generic_analysis.build_xen()
25        if settings.step_cppcheck_report:
26            cppcheck_analysis.generate_cppcheck_report()
27    except PhaseExceptions as e:
28        print("ERROR: {}".format(e))
29        ret_code = getattr(e, "errorcode", 1)
30    finally:
31        if settings.step_clean_analysis:
32            cppcheck_analysis.clean_analysis_artifacts()
33            e = generic_analysis.clean_analysis_artifacts()
34            if e:
35                print("ERROR: {}".format(e))
36                ret_code = 1
37        if settings.step_distclean_analysis:
38            cppcheck_analysis.clean_reports()
39
40    sys.exit(ret_code)
41
42
43if __name__ == "__main__":
44    main(sys.argv[1:])
45

Last Index update Fri Aug 22 02:49:16 CST 2025