if args.path in config.projects: pdir = config.projects[args.path] cpath = os.path.join(config.testdir,pdir) else: cpath = os.path.abspath(args.path) if not os.path.isdir(cpath): print(UP.cpath_not_found_err_msg(cpath)) exit(1) sempath = os.path.join(cpath,'semantics') if not os.path.isdir(sempath): print(UP.semantics_not_found_err_msg(cpath)) exit(1) capp = CApplication(sempath) timestamp = os.stat(capp.path).st_ctime try: result = RP.project_proofobligation_stats_to_dict(capp) result['timestamp'] = timestamp result['project'] = cpath UF.save_project_summary_results(cpath,result) except IndexedTableError as e: print( '\n' + ('*' * 80) + '\nThe analysis results format has changed' + '\nYou may have to re-run the analysis first: ' + '\n' + e.msg + '\n' + ('*' * 80))
capp.reinitialize_tables() capp.update_spos() for i in range(5): capp.update_spos() am.generate_and_check_app('llrvisp', processes=args.maxprocesses) capp.reinitialize_tables() def filefilter(filename): return (not (filename in ["io", "main_linux", "std_thread"])) with timing('summarize'): contractviolations = capp.get_contract_condition_violations() if len(contractviolations) > 0: print(' --> ' + str(len(contractviolations)) + ' contract violations in ' + args.path) timestamp = os.stat(capp.path).st_ctime try: result = RP.project_proofobligation_stats_to_dict( capp, filefilter=filefilter) result['timestamp'] = timestamp result['project'] = cpath UF.save_project_summary_results(cpath, result) except IndexedTableError as e: print('\n' + ('*' * 80) + '\nThe analysis results format has changed' + '\nYou may have to re-run the analysis first: ' + '\n' + e.msg + '\n' + ('*' * 80))