예제 #1
0
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
예제 #2
0
파일: main.py 프로젝트: terminiter/sapienz
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