Auto merge of #18984 - dsandeephegde:master, r=jdm

Initial steps of Mutation testing

<!-- Please describe your changes on the following line: -->
- Added one strategy of mutation which is replacing occurrences && to ||.
- Added test mapping framework for running mutation tests corresponding to a mutant.
- Added one test_mapping.json to map source file in a folder to WPT test.
- Added README mentioning about Mutation testing.
- Added CI script to invoke mutation test.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes #18529 (github issue number if applicable).
- [x] These changes do not require tests because it is a python script to run mutation test and does not change any behavior.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18984)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-11-16 11:51:01 -06:00 committed by GitHub
commit 50f11e3584
6 changed files with 234 additions and 0 deletions

View file

@ -68,6 +68,7 @@ linux-rel-nogate:
- ./mach clean-nightlies --keep 3 --force
- env CC=gcc-5 CXX=g++-5 ./mach build --release
- python ./etc/ci/chaos_monkey_test.py
- bash ./etc/ci/mutation_test.sh
mac-rel-intermittent:
- ./mach clean-nightlies --keep 3 --force

13
etc/ci/mutation_test.sh Executable file
View file

@ -0,0 +1,13 @@
#!/usr/bin/env bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
set -o errexit
set -o nounset
set -o pipefail
PS1="" source python/_virtualenv/bin/activate
# `PS1` must be defined before activating virtualenv
python python/servo/mutation/init.py components/script/dom