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
def main(): # calling transform script bitcodefile = sys.argv[1] configfile = sys.argv[2] result = transform2.transform(bitcodefile, configfile) print "Return value: " + str(result)
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
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
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
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
def main(): # calling transform script bitcodefile = sys.argv[1] configfile = sys.argv[2] result = transform2.transform(bitcodefile, configfile)