Exemplo n.º 1
0
    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))

Exemplo n.º 2
0
            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))