help="directory that holds the semantics directory (or tar.gz file)")
    args = parser.parse_args()
    return args


def savexrefs(f):
    capp.indexmanager.savexrefs(capp.path, f.name, f.index)


if __name__ == "__main__":

    args = parse()

    try:
        cpath = UF.get_project_path(args.path)
        UF.check_semantics(cpath)
    except UF.CHError as e:
        print(str(e.wrap()))
        exit(1)
    sempath = os.path.join(cpath, "semantics")

    capp = CApplication(sempath)
    print("Global entities")
    if capp.declarations:
        print(str(capp.declarations.get_stats()))
    print("\nFile line and function counts\n")
    print(capp.get_line_counts())

    request = {
        "mem": lambda v: v.is_mem(),
        "tmp": lambda v: v.is_tmpvar(),
    t0 = time.time()
    yield
    print("\n" + ("=" * 80) + "\nCompleted " + activity + " in " +
          str(time.time() - t0) + " secs" + "\n" + ("=" * 80))


def save_xrefs(f):
    capp.indexmanager.save_xrefs(capp.path, f.name, f.index)


if __name__ == "__main__":

    args = parse()
    try:
        cpath = UF.get_juliet_testpath(args.cwe, args.test)
        UF.check_semantics(cpath, deletesemantics=True)
    except UF.CHError as e:
        print(str(e.wrap()))
        exit(1)

    logfilename = os.path.join(cpath, "chc_logfile.txt")
    logging.basicConfig(filename=logfilename, level=logging.WARNING)

    sempath = os.path.join(cpath, "semantics")

    excludefiles = ["io.c", "main_linux.c", "std_thread.c"]

    capp = CApplication(sempath, excludefiles=excludefiles)
    linker = CLinker(capp)
    linker.link_compinfos()
    linker.link_varinfos()
Example #3
0
                        help="don't show preconditions",
                        action='store_true')
    parser.add_argument('--xpost',
                        help="don't show postconditions",
                        action='store_true')
    args = parser.parse_args()
    return args


if __name__ == '__main__':

    args = parse()

    try:
        cpath = UF.get_project_path(args.path)
        UF.check_semantics(cpath, deletesemantics=False)
    except UF.CHError as e:
        print(str(e.wrap()))
        exit(1)

    sempath = os.path.join(cpath, 'semantics')

    if args.contractpath is None:
        contractpath = os.path.join(cpath, 'chc_contracts')
    else:
        contractpath = args.contractpath

    capp = CApplication(sempath, contractpath=contractpath)

    lines = []
    result = {}
Example #4
0
    except UF.CHError as e:
        print(str(e.wrap()))
        exit(1)

    if args.logging is None:
        loglevel = logging.WARNING
    else:
        if args.logging == 'DEBUG': loglevel = logging.DEBUG
        elif args.logging == 'INFO': loglevel = logging.INFO
        elif args.logging == 'WARNING': loglevel = logging.WARNING
        elif args.logging == 'ERROR': loglevel = logging.ERROR
        elif args.logging == 'CRITICAL': loglevel = logging.CRITICAL

    try:
        cpath = UF.get_project_path(args.path)
        UF.check_semantics(cpath, deletesemantics=args.deletesemantics)
        sempath = os.path.join(cpath, 'semantics')
    except UF.CHError as e:
        print(str(e.wrap()))
        exit(1)

    logfilename = os.path.join(cpath, 'chclogfile.txt')

    logging.basicConfig(filename=logfilename, level=loglevel)

    if args.contractpath is None:
        contractpath = os.path.join(cpath, 'chc_contracts')
    else:
        contractpath = args.contractpath

    # check linkinfo