Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Capture all classloaders loading mutant for roboelectric and quarkus #1067

Merged
merged 5 commits into from
Nov 17, 2022

Commits on Nov 16, 2022

  1. Capture all classloaders loading mutant

    Quarkus, Roboelectric (and possibly other frameworks) load the class under test in a
    classloader that is not set as the context loader when pitest starts.
    
    A previous change got things working with Quarkus, but Roboelectric
    complicates things further by persisting the classloaders between tests.
    We must therefore keep track of all classloaders used to load a mutated
    class, and insert each mutant into all of them.
    
    This would have been complicated in earlier version of pitest by the
    possibility that the same JVM might be used to mutate multiple classes.
    This would requite the bytes of each class to be stored so that
    unmutated class could be restored.
    
    At some point, a change seems to have been made such that only 1 class
    is ever mutated per jvm. Experiments to reintroduce multiple class
    mutations (inners, lambdas etc) did not result in a performance increase
    in sample code bases. 1 class per jvm is therefore now made a guarantee
    to allow the code to be much simpler.
    Henry Coles committed Nov 16, 2022
    Configuration menu
    Copy the full SHA
    6483624 View commit details
    Browse the repository at this point in the history
  2. exclude gwt classloader from transformation

    Henry Coles committed Nov 16, 2022
    Configuration menu
    Copy the full SHA
    fc81d95 View commit details
    Browse the repository at this point in the history
  3. remove MutationGropuer extension point

    We now have an explicit assumption of 1 mutated class per jvm. Allowing
    arbritrary mutant groupings may violate this.
    Henry Coles committed Nov 16, 2022
    Configuration menu
    Copy the full SHA
    3dd44bc View commit details
    Browse the repository at this point in the history
  4. quarkus test is still flaky

    Henry Coles committed Nov 16, 2022
    Configuration menu
    Copy the full SHA
    f9b727a View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2022

  1. update readme

    Henry Coles committed Nov 17, 2022
    Configuration menu
    Copy the full SHA
    e1ad19f View commit details
    Browse the repository at this point in the history