Skip to content

Commit

Permalink
Skipping mutation test for file with local changes
Browse files Browse the repository at this point in the history
  • Loading branch information
dsandeephegde committed Nov 6, 2017
1 parent ffbabf4 commit d24d6ac
Showing 1 changed file with 27 additions and 23 deletions.
50 changes: 27 additions & 23 deletions python/servo/mutation/test.py
Expand Up @@ -33,28 +33,32 @@ def mutate_random_line(file_name):


def mutation_test(file_name, tests):
mutated_line = mutate_random_line(file_name)
if mutated_line != -1:
print "Mutating {0} at line {1}".format(file_name, mutated_line)
print "compling mutant {0}:{1}".format(file_name, mutated_line)
sys.stdout.flush()
subprocess.call('python mach build --release', shell=True, stdout=DEVNULL)
for test in tests:
test_command = "python mach test-wpt {0} --release".format(test.encode('utf-8'))
print "running `{0}` test for mutant {1}:{2}".format(test, file_name, mutated_line)
local_changes_present = subprocess.call('git diff --quiet {0}'.format(file_name), shell=True)
if local_changes_present == 1:
print "{0} has local changes, please commit/remove changes before running the test".format(file_name)
else:
mutated_line = mutate_random_line(file_name)
if mutated_line != -1:
print "Mutating {0} at line {1}".format(file_name, mutated_line)
print "compling mutant {0}:{1}".format(file_name, mutated_line)
sys.stdout.flush()
test_status = subprocess.call(test_command, shell=True, stdout=DEVNULL)
if test_status != 0:
print("Failed: while running `{0}`".format(test_command))
print "mutated file {0} diff".format(file_name)
subprocess.call('python mach build --release', shell=True, stdout=DEVNULL)
for test in tests:
test_command = "python mach test-wpt {0} --release".format(test.encode('utf-8'))
print "running `{0}` test for mutant {1}:{2}".format(test, file_name, mutated_line)
sys.stdout.flush()
subprocess.call('git --no-pager diff {0}'.format(file_name), shell=True)
else:
print("Success: Mutation killed by {0}".format(test.encode('utf-8')))
break
print "reverting mutant {0}:{1}".format(file_name, mutated_line)
sys.stdout.flush()
subprocess.call('git checkout {0}'.format(file_name), shell=True)
else:
print "Cannot mutate {0}".format(file_name)
print "-----------------------------------------------------------------\n"
test_status = subprocess.call(test_command, shell=True, stdout=DEVNULL)
if test_status != 0:
print("Failed: while running `{0}`".format(test_command))
print "mutated file {0} diff".format(file_name)
sys.stdout.flush()
subprocess.call('git --no-pager diff {0}'.format(file_name), shell=True)
else:
print("Success: Mutation killed by {0}".format(test.encode('utf-8')))
break
print "reverting mutant {0}:{1}".format(file_name, mutated_line)
sys.stdout.flush()
subprocess.call('git checkout {0}'.format(file_name), shell=True)
else:
print "Cannot mutate {0}".format(file_name)
print "-----------------------------------------------------------------\n"

0 comments on commit d24d6ac

Please sign in to comment.