def evaluate_suite(individual, device, apk_dir, package_name, gen, pop): # for get_motifcore_suite_coverage script_path = [] # for length objective suite_lengths = [] for index, seq in enumerate(individual): # generate script file list script = open(apk_dir + "/intermediate/motifcore.evo.script." + str(gen) + "." + str(pop) + "." + str(index), "w") script.write(settings.MOTIFCORE_SCRIPT_HEADER) length = 0 for line in seq: script.write(line + "\n") length += 1 suite_lengths.append(length) script.close() script_path.append(os.path.abspath( apk_dir + "/intermediate/motifcore.evo.script." + str(gen) + "." + str(pop) + "." + str(index))) # give a script and package, return the coverage by running all seqs # TODO: FIX ME if ".apk_output" in apk_dir: coverage, num_crashes = act_coverage.get_suite_coverage(script_path, device, apk_dir, package_name, gen, pop) else: coverage, num_crashes = emma_coverage.get_suite_coverage(script_path, device, apk_dir, package_name, gen, pop) print "### Coverage = ", coverage print "### Lengths = ", suite_lengths print "### #Crashes = ", num_crashes # 1st obj: coverage, 2nd: average seq length of the suite, 3nd: #crashes return pop, (coverage, numpy.mean(suite_lengths), num_crashes), device
def eval_suite(individual, device, apk_dir, package_name, gen, pop): # for get_motifcore_suite_coverage script_path = [] # for length objective suite_lengths = [] for index, seq in enumerate(individual): # generate script file list script = open(apk_dir + "/intermediate/motifcore.evo.script." + str(gen) + "." + str(pop) + "." + str(index), "w") script.write(settings.MOTIFCORE_SCRIPT_HEADER) length = 0 for line in seq: script.write(line + "\n") length += 1 suite_lengths.append(length) script.close() script_path.append(os.path.abspath( apk_dir + "/intermediate/motifcore.evo.script." + str(gen) + "." + str(pop) + "." + str(index))) # give a script and package, return the coverage by running all seqs if apk_dir.endswith(".apk_output"): coverage, num_crashes = act_coverage.get_suite_coverage(script_path, device, apk_dir, package_name, gen, pop) else: coverage, num_crashes = emma_coverage.get_suite_coverage(script_path, device, apk_dir, package_name, gen, pop) print "### Coverage = ", coverage print "### Lengths = ", suite_lengths print "### #Crashes = ", num_crashes # 1st obj: coverage, 2nd: average seq length of the suite, 3nd: #crashes return pop, (coverage, numpy.mean(suite_lengths), num_crashes), device