diff options
author | Sandeep Hegde <dsandeephegde@gmail.com> | 2017-11-06 12:57:00 -0500 |
---|---|---|
committer | Sandeep Hegde <dsandeephegde@gmail.com> | 2017-11-06 13:00:14 -0500 |
commit | d24d6ac8ef1dcd0dde4637099d97d93e75ce181c (patch) | |
tree | 68a695d4bc2c7f3945d8357e85fbb5e21cbe364e /python/servo | |
parent | ffbabf4a4c0dbc3e89590162e8ef9d4a0ea852bb (diff) | |
download | servo-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.py | 50 |
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" |