Esempio n. 1
0
def run_config(search_config, original_config, bitcode, timeout):
  global search_counter
  utilities.print_config(search_config, "config_temp.json")
  result = transform2.transform(bitcode, "config_temp.json", timeout)
  if result == 1:
    utilities.print_config(search_config, "VALID_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "VALID", "log.dd", search_counter)
    utilities.print_diff(search_config, original_config, "dd2_diff_" + bitcode + "_" + str(search_counter) + ".json")
  elif result == 0:
    utilities.print_config(search_config, "INVALID_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "INVALID", "log.dd", search_counter)
  elif result == -1:
    utilities.print_config(search_config, "FAIL1_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "FAIL1", "log.dd", search_counter)
  elif result == -2:
    utilities.print_config(search_config, "FAIL2_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "FAIL2", "log.dd", search_counter)
  elif result == -3:
    utilities.print_config(search_config, "FAIL3_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "FAIL3", "log.dd", search_counter)
  else:
    utilities.print_config(search_config, "FAIL4_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "FAIL4", "log.dd", search_counter)

  search_counter += 1
  return result
Esempio n. 2
0
def main():

    # calling transform script
    bitcodefile = sys.argv[1]
    configfile = sys.argv[2]
    result = transform2.transform(bitcodefile, configfile)
    print "Return value: " + str(result)
Esempio n. 3
0
def run_config(search_config, original_config, bitcode):
  global search_counter
  utilities.print_config(search_config, "config_temp.json")
  result = transform2.transform(bitcode, "config_temp.json")
  if result == 1:
    utilities.print_config(search_config, "VALID_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "VALID", "log.dd", search_counter)
    utilities.print_diff(search_config, original_config, "dd2_diff_" + bitcode + "_" + str(search_counter) + ".json")
  elif result == 0:
    utilities.print_config(search_config, "INVALID_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "INVALID", "log.dd", search_counter)
  elif result == -1:
    utilities.print_config(search_config, "FAIL1_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "FAIL1", "log.dd", search_counter)
  elif result == -2:
    utilities.print_config(search_config, "FAIL2_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "FAIL2", "log.dd", search_counter)
  elif result == -3:
    utilities.print_config(search_config, "FAIL3_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "FAIL3", "log.dd", search_counter)
  else:
    utilities.print_config(search_config, "FAIL4_config_" + bitcode + "_" + str(search_counter) + ".json")
    utilities.log_config(search_config, "FAIL4", "log.dd", search_counter)

  search_counter += 1
  return result
Esempio n. 4
0
def run_config(search_config, original_config, bitcode, inx):
    """
    run bitcode file with the current search configuration
    return  1   bitcode file is valid
            0   bitcode file is invalid
            < 0 some internal transformation error happens
    """
    # write the search_conf to a temp file
    print_config(search_config, "config_temp.json")
    # transform bitcode file using temp config file
    result = transform2.transform(bitcode, "config_temp.json")

    code = "VALID"
    if result == 1:
        pass
    elif result == 0:
        code = "INVALID"
    else:
        code = "FAIL" + str(result)

    # write log file
    log_config(search_config, code, "log.dd", inx)
    # write result files
    config_filename = code + "_config_" + bitcode + "_" + str(inx) + ".json"
    print_config(search_config, config_filename)
    if result == 1:
        diff_filename = "dd2_diff_" + bitcode + "_" + str(inx) + ".txt"
        print_diff(search_config, original_config, diff_filename)

    return result
Esempio n. 5
0
def run_config(search_config, original_config, bitcode, timeout):
    if False:
        fp = open('ivy.log', 'a')
        print >> fp, "run config:"
        print >> fp, "search_config:"
        print >> fp, search_config
        fp.close()
    global search_counter
    print "** Exploring configuration #" + str(search_counter)
    utilities.print_config(search_config, "config_temp.json")
    result = transform2.transform(bitcode, "config_temp.json", timeout)
    if result == 1:
        utilities.print_config(
            search_config,
            "VALID_config_" + bitcode + "_" + str(search_counter) + ".json")
        utilities.log_config(search_config, "VALID", "log.dd", search_counter)
        utilities.print_diff(
            search_config, original_config,
            "dd2_diff_" + bitcode + "_" + str(search_counter) + ".json")
    elif result == 0:
        utilities.print_config(
            search_config,
            "INVALID_config_" + bitcode + "_" + str(search_counter) + ".json")
        utilities.log_config(search_config, "INVALID", "log.dd",
                             search_counter)
    elif result == -1:
        utilities.print_config(
            search_config,
            "FAIL1_config_" + bitcode + "_" + str(search_counter) + ".json")
        utilities.log_config(search_config, "FAIL1", "log.dd", search_counter)
    elif result == -2:
        utilities.print_config(
            search_config,
            "FAIL2_config_" + bitcode + "_" + str(search_counter) + ".json")
        utilities.log_config(search_config, "FAIL2", "log.dd", search_counter)
    elif result == -3:
        utilities.print_config(
            search_config,
            "FAIL3_config_" + bitcode + "_" + str(search_counter) + ".json")
        utilities.log_config(search_config, "FAIL3", "log.dd", search_counter)
    else:
        utilities.print_config(
            search_config,
            "FAIL4_config_" + bitcode + "_" + str(search_counter) + ".json")
        utilities.log_config(search_config, "FAIL4", "log.dd", search_counter)

    search_counter += 1
    return result
Esempio n. 6
0
def run_config(config, search, bitcodefile, originalConfig, limit):
    print_config(config, "config_temp.json")
    #result = transform.transform(bitcodefile, "config_temp.json")
    result = transform2.transform(bitcodefile, "config_temp.json", 0)
    if result == 1:
        print "check VALID_config_" + str(
            search) + ".json for a valid config file"
        print_config(
            config,
            "VALID_config_" + bitcodefile + "_" + str(search) + ".json")
        print_diff(config, originalConfig, "diff_" + str(search) + ".cov")
        utilities.log_config(config, "VALID", "log.bf", search)
    elif result == 0:
        print "\tINVALID CONFIG"
        print_config(
            config,
            "INVALID_config_" + bitcodefile + "_" + str(search) + ".json")
        utilities.log_config(config, "INVALID", "log.bf", search)
    elif result == -1:
        print "\tFAIL TYPE 1"
        print_config(
            config,
            "FAIL1_config_" + bitcodefile + "_" + str(search) + ".json")
        utilities.log_config(config, "FAIL1", "log.bf", search)
    elif result == -2:
        print "\tFAIL TYPE 2"
        print_config(
            config,
            "FAIL2_config_" + bitcodefile + "_" + str(search) + ".json")
        utilities.log_config(config, "FAIL2", "log.bf", search)
    elif result == -3:
        print "\tFAIL TYPE 3"
        print_config(
            config,
            "FAIL3_config_" + bitcodefile + "_" + str(search) + ".json")
        utilities.log_config(config, "FAIL3", "log.bf", search)
    else:
        print "\tFAIL TYPE 4"
        print_config(
            config,
            "FAIL4_config_" + bitcodefile + "_" + str(search) + ".json")
        utilities.log_config(config, "FAIL4", "log.bf", search)

    search += 1
    if search > limit and limit != -1:
        sys.exit(0)
    return search
Esempio n. 7
0
def main():

    # calling transform script
    bitcodefile = sys.argv[1]
    configfile = sys.argv[2]
    result = transform2.transform(bitcodefile, configfile)