From abbdcf0afc822fbce96f3b4ba152ceb9d0063740 Mon Sep 17 00:00:00 2001 From: Sandeep Hegde Date: Thu, 19 Oct 2017 01:15:03 -0400 Subject: XMLHTTPRequest Mutator - Initial step Mutation testing --- python/servo/mutation/test.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 python/servo/mutation/test.py (limited to 'python/servo/mutation') diff --git a/python/servo/mutation/test.py b/python/servo/mutation/test.py new file mode 100644 index 00000000000..f62045c0398 --- /dev/null +++ b/python/servo/mutation/test.py @@ -0,0 +1,35 @@ +import fileinput +import re +import subprocess +import sys + +def mutate_line(file_name, line_number): + lines = open(file_name, 'r').readlines() + lines[line_number - 1] = re.sub(r'\s&&\s', ' || ', lines[line_number - 1]) + out = open(file_name, 'w') + out.writelines(lines) + out.close() + +def mutation_test(file_name): + lineNumbers = [] + for line in fileinput.input(file_name): + if re.search(r'\s&&\s', line): + lineNumbers.append(fileinput.lineno()) + + for lineToMutate in lineNumbers: + print "Mutating {0} at line {1}".format(file_name, lineToMutate) + mutate_line(file_name, lineToMutate) + print "compling mutant {0}-{1}".format(file_name, lineToMutate) + sys.stdout.flush() + subprocess.call('python mach build --release', shell=True) + print "running tests for mutant {0}-{1}".format(file_name, lineToMutate) + sys.stdout.flush() + subprocess.call('python mach test-wpt XMLHttpRequest --release', shell=True) + print "mutated file {0} diff".format(file_name) + sys.stdout.flush() + subprocess.call('git --no-pager diff {0}'.format(file_name), shell=True) + print "reverting mutant {0}-{1}".format(file_name, lineToMutate) + sys.stdout.flush() + subprocess.call('git checkout {0}'.format(file_name), shell=True) + +mutation_test('components/script/dom/xmlhttprequest.rs') -- cgit v1.2.3