fresh-architect-74417
10/12/2020, 3:47 PMcalm-ambulance-65371
10/12/2020, 3:48 PMhundreds-father-404
10/12/2020, 4:04 PMfresh-architect-74417
10/13/2020, 7:53 PMfresh-architect-74417
10/13/2020, 7:54 PMhundreds-father-404
10/13/2020, 7:56 PMThe first step is to run each individual unittest function with coverage.This is how Pants does test coverage atm. Each test file is a distinct process, and we use
--pytest-cov
to get coverage data for just that run. Then, we run coverage combine
to merge all the distinct results into a single report
Then take the code coverage and run mutation on each lineBecause each test runs in a chroot, I think this will be possible. That is, mutating the code will not impact your actual build root. It only mutates the chroot. It’s safe.
For each mutation, you will need to publish it to test runner such as buildfarm.Is the remote execution only for performance, or some other motivation?
You will need a way to report false positive by converting the impacted code to AST then generalize in an AI model that are used in NLP.That part we might not be as able to help with 😅
fresh-architect-74417
10/13/2020, 7:58 PMIs the remote execution only for performanceIt's mainly for performance. Otherwise, running the same mutated test multiple times is not going to be practical
fresh-architect-74417
10/13/2020, 7:59 PMhundreds-father-404
10/13/2020, 8:05 PMhundreds-father-404
10/13/2020, 8:11 PMIt’s mainly for performance. Otherwise, running the same mutated test multiple times is not going to be practicalCool. The way the Plugin API is set up, remote execution works with no extra effort required by the plugin author. Build logic is broken up into several composable steps via “rules”. Things like subprocesses are hermetic. The engine will send relevant work to the remote workers for you. The only challenge is for the end-user to hook up remote execution, i.e. get their config and env working. Tom is working on some docs for that.
fresh-architect-74417
10/13/2020, 8:33 PMhundreds-father-404
10/13/2020, 8:35 PM