aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo
diff options
context:
space:
mode:
authorSandeep Hegde <dsandeephegde@gmail.com>2017-11-06 12:57:00 -0500
committerSandeep Hegde <dsandeephegde@gmail.com>2017-11-06 13:00:14 -0500
commitd24d6ac8ef1dcd0dde4637099d97d93e75ce181c (patch)
tree68a695d4bc2c7f3945d8357e85fbb5e21cbe364e /python/servo
parentffbabf4a4c0dbc3e89590162e8ef9d4a0ea852bb (diff)
downloadservo-d24d6ac8ef1dcd0dde4637099d97d93e75ce181c.tar.gz
servo-d24d6ac8ef1dcd0dde4637099d97d93e75ce181c.zip
Skipping mutation test for file with local changes
Diffstat (limited to 'python/servo')
-rw-r--r--python/servo/mutation/test.py50
1 files changed, 27 insertions, 23 deletions
diff --git a/python/servo/mutation/test.py b/python/servo/mutation/test.py
index 39c5c84903a..242d545a305 100644
--- a/python/servo/mutation/test.py
+++ b/python/servo/mutation/test.py
@@ -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"