Skip to content

Commit 24429e8

Browse files
committed
CMD: add chkx results check command
1 parent 8dd880d commit 24429e8

3 files changed

Lines changed: 45 additions & 1 deletion

File tree

chb/app/CHVersion.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
chbversion: str = "0.3.0-20260125"
1+
chbversion: str = "0.3.0-20260126"
22

33
minimum_required_chb_version = "0.6.0_20260122"

chb/cmdline/chkx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,11 @@ def parse() -> argparse.Namespace:
610610
resultscmd.set_defaults(func=resultscommand)
611611
resultsparsers = resultscmd.add_subparsers(title='show options')
612612

613+
# -- results check --
614+
resultscheck = resultsparsers.add_parser("check")
615+
resultscheck.add_argument("xname", help="name of executable")
616+
resultscheck.set_defaults(func=UCC.results_check)
617+
613618
# -- results stats --
614619
resultsstats = resultsparsers.add_parser('stats')
615620
resultsstats.add_argument('xname', help='name of executable')

chb/cmdline/commandutil.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,36 @@ def analyzecmd(args: argparse.Namespace) -> NoReturn:
627627
exit(0)
628628

629629

630+
def results_check(args: argparse.Namespace) -> NoReturn:
631+
"""Checks if results present are compatible with the current version."""
632+
633+
# arguments
634+
xname: str = str(args.xname)
635+
636+
try:
637+
(path, xfile) = get_path_filename(xname)
638+
UF.check_analysis_results(path, xfile)
639+
except UF.CHBError as e:
640+
print_error(str(e.wrap()))
641+
exit(1)
642+
643+
chbversion = UF.get_resultmetrics_chb_version(path, xfile)
644+
if chbversion >= minimum_required_chb_version:
645+
print_status_update(
646+
"Analysis results version: "
647+
+ chbversion
648+
+ " is compatible with minimum required version: "
649+
+ minimum_required_chb_version)
650+
exit(0)
651+
else:
652+
print_error(
653+
"Analysis results version: "
654+
+ chbversion
655+
+ " is not compatible with minimum required version: "
656+
+ minimum_required_chb_version)
657+
exit(1)
658+
659+
630660
def results_stats(args: argparse.Namespace) -> NoReturn:
631661
"""Prints out a summary of the analysis results per function."""
632662

@@ -650,6 +680,15 @@ def results_stats(args: argparse.Namespace) -> NoReturn:
650680
print_error(str(e.wrap()))
651681
exit(1)
652682

683+
chbversion = UF.get_resultmetrics_chb_version(path, xfile)
684+
if chbversion < minimum_required_chb_version:
685+
print_status_update(
686+
"Warning: analysis results may be out of date. "
687+
+ "The version of the analysis results: "
688+
+ chbversion
689+
+ " is not compatible with the minimum required version: "
690+
+ minimum_required_chb_version)
691+
653692
set_logging(
654693
loglevel,
655694
path,

0 commit comments

Comments
 (0)