/art/tools/dexfuzz/src/dexfuzz/program/mutators/ |
CodeMutator.java | 23 import dexfuzz.program.Mutation; 45 protected List<Mutation> mutations; 66 public CodeMutator(Random rng, MutationStats stats, List<Mutation> mutations) { 75 Log.info("Set mutation likelihood to " + likelihood 84 * is expected to implement to perform its mutation. 86 * @return If mutation took place. 93 Log.info("Skipping mutation."); 97 public void forceMutate(Mutation mutation) { 98 Log.info("Forcing mutation.") 117 Mutation mutation = generateMutation(mutatableCode); local [all...] |
InstructionDeleter.java | 24 import dexfuzz.program.Mutation; 32 * mutation that this CodeMutator can perform, to allow separate 35 public static class AssociatedMutation extends Mutation { 50 // so it can create a CodeMutator and get the correct associated Mutation, as it 53 public Mutation getNewMutation() { 59 public InstructionDeleter(Random rng, MutationStats stats, List<Mutation> mutations) { 76 protected Mutation generateMutation(MutatableCode mutatableCode) { 80 AssociatedMutation mutation = new AssociatedMutation(); local 81 mutation.setup(this.getClass(), mutatableCode); 82 mutation.insnToDeleteIdx = insnIdx 89 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
InstructionDuplicator.java | 23 import dexfuzz.program.Mutation; 32 * mutation that this CodeMutator can perform, to allow separate 35 public static class AssociatedMutation extends Mutation { 50 // so it can create a CodeMutator and get the correct associated Mutation, as it 53 public Mutation getNewMutation() { 59 public InstructionDuplicator(Random rng, MutationStats stats, List<Mutation> mutations) { 65 protected Mutation generateMutation(MutatableCode mutatableCode) { 82 AssociatedMutation mutation = new AssociatedMutation(); local 83 mutation.setup(this.getClass(), mutatableCode); 84 mutation.insnToDuplicateIdx = insnIdx 91 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
RegisterClobber.java | 23 import dexfuzz.program.Mutation; 34 * mutation that this CodeMutator can perform, to allow separate 37 public static class AssociatedMutation extends Mutation{ 53 // so it can create a CodeMutator and get the correct associated Mutation, as it 56 public Mutation getNewMutation() { 62 public RegisterClobber(Random rng, MutationStats stats, List<Mutation> mutations) { 73 protected Mutation generateMutation(MutatableCode mutatableCode) { 76 AssociatedMutation mutation = new AssociatedMutation(); local 77 mutation.setup(this.getClass(), mutatableCode); 78 mutation.regClobberIdx = insertionIdx 84 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
BranchShifter.java | 24 import dexfuzz.program.Mutation; 33 * mutation that this CodeMutator can perform, to allow separate 36 public static class AssociatedMutation extends Mutation { 56 // so it can create a CodeMutator and get the correct associated Mutation, as it 59 public Mutation getNewMutation() { 65 public BranchShifter(Random rng, MutationStats stats, List<Mutation> mutations) { 107 protected Mutation generateMutation(MutatableCode mutatableCode) { 140 AssociatedMutation mutation = new AssociatedMutation(); local 141 mutation.setup(this.getClass(), mutatableCode); 142 mutation.branchInsnIdx = branchInsnIdx 150 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
CmpBiasChanger.java | 23 import dexfuzz.program.Mutation; 34 * mutation that this CodeMutator can perform, to allow separate 37 public static class AssociatedMutation extends Mutation { 52 // so it can create a CodeMutator and get the correct associated Mutation, as it 55 public Mutation getNewMutation() { 61 public CmpBiasChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 98 protected Mutation generateMutation(MutatableCode mutatableCode) { 103 AssociatedMutation mutation = new AssociatedMutation(); local 104 mutation.setup(this.getClass(), mutatableCode); 105 mutation.cmpBiasInsnIdx = cmpBiasInsnIdx 112 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
ConstantValueChanger.java | 23 import dexfuzz.program.Mutation; 33 * mutation that this CodeMutator can perform, to allow separate 36 public static class AssociatedMutation extends Mutation { 56 // so it can create a CodeMutator and get the correct associated Mutation, as it 59 public Mutation getNewMutation() { 65 public ConstantValueChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 101 protected Mutation generateMutation(MutatableCode mutatableCode) { 119 AssociatedMutation mutation = new AssociatedMutation(); local 120 mutation.setup(this.getClass(), mutatableCode); 121 mutation.constInsnIdx = constInsnIdx 129 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
IfBranchChanger.java | 23 import dexfuzz.program.Mutation; 42 * mutation that this CodeMutator can perform, to allow separate 45 public static class AssociatedMutation extends Mutation { 60 // so it can create a CodeMutator and get the correct associated Mutation, as it 63 public Mutation getNewMutation() { 69 public IfBranchChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 105 protected Mutation generateMutation(MutatableCode mutatableCode) { 110 AssociatedMutation mutation = new AssociatedMutation(); local 111 mutation.setup(this.getClass(), mutatableCode); 112 mutation.ifBranchInsnIdx = ifBranchInsnIdx 118 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
InstructionSwapper.java | 23 import dexfuzz.program.Mutation; 31 * mutation that this CodeMutator can perform, to allow separate 34 public static class AssociatedMutation extends Mutation { 54 // so it can create a CodeMutator and get the correct associated Mutation, as it 57 public Mutation getNewMutation() { 63 public InstructionSwapper(Random rng, MutationStats stats, List<Mutation> mutations) { 79 protected Mutation generateMutation(MutatableCode mutatableCode) { 135 AssociatedMutation mutation = new AssociatedMutation(); local 136 mutation.setup(this.getClass(), mutatableCode); 137 mutation.swapInsnIdx = swapInsnIdx 145 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
NewArrayLengthChanger.java | 23 import dexfuzz.program.Mutation; 34 * mutation that this CodeMutator can perform, to allow separate 37 public static class AssociatedMutation extends Mutation { 52 // so it can create a CodeMutator and get the correct associated Mutation, as it 55 public Mutation getNewMutation() { 61 public NewArrayLengthChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 99 protected Mutation generateMutation(MutatableCode mutatableCode) { 104 AssociatedMutation mutation = new AssociatedMutation(); local 105 mutation.setup(this.getClass(), mutatableCode); 106 mutation.newArrayToChangeIdx = newArrayIdx 113 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
ConversionRepeater.java | 23 import dexfuzz.program.Mutation; 34 * mutation that this CodeMutator can perform, to allow separate 37 public static class AssociatedMutation extends Mutation { 52 // so it can create a CodeMutator and get the correct associated Mutation, as it 55 public Mutation getNewMutation() { 61 public ConversionRepeater(Random rng, MutationStats stats, List<Mutation> mutations) { 98 protected Mutation generateMutation(MutatableCode mutatableCode) { 101 AssociatedMutation mutation = new AssociatedMutation(); local 102 mutation.setup(this.getClass(), mutatableCode); 103 mutation.conversionInsnIdx = conversionInsnIdx 110 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
FieldFlagChanger.java | 23 import dexfuzz.program.Mutation; 36 * mutation that this CodeMutator can perform, to allow separate 39 public static class AssociatedMutation extends Mutation { 59 // so it can create a CodeMutator and get the correct associated Mutation, as it 62 public Mutation getNewMutation() { 68 public FieldFlagChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 105 protected Mutation generateMutation(MutatableCode mutatableCode) { 121 AssociatedMutation mutation = new AssociatedMutation(); local 122 mutation.setup(this.getClass(), mutatableCode); 123 mutation.fieldInsnIdx = fieldInsnIdx 131 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
InvokeChanger.java | 23 import dexfuzz.program.Mutation; 51 * mutation that this CodeMutator can perform, to allow separate 54 public static class AssociatedMutation extends Mutation { 70 // so it can create a CodeMutator and get the correct associated Mutation, as it 73 public Mutation getNewMutation() { 79 public InvokeChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 116 protected Mutation generateMutation(MutatableCode mutatableCode) { 121 AssociatedMutation mutation = new AssociatedMutation(); local 122 mutation.setup(this.getClass(), mutatableCode); 123 mutation.invokeCallInsnIdx = invokeCallInsnIdx 130 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
NewMethodCaller.java | 23 import dexfuzz.program.Mutation; 34 * mutation that this CodeMutator can perform, to allow separate 37 public static class AssociatedMutation extends Mutation { 90 // so it can create a CodeMutator and get the correct associated Mutation, as it 93 public Mutation getNewMutation() { 99 public NewMethodCaller(Random rng, MutationStats stats, List<Mutation> mutations) { 105 protected Mutation generateMutation(MutatableCode mutatableCode) { 122 AssociatedMutation mutation = new AssociatedMutation(); local 123 mutation.setup(this.getClass(), mutatableCode); 124 mutation.insertionIdx = insertionIdx 140 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
NonsenseStringPrinter.java | 23 import dexfuzz.program.Mutation; 33 * mutation that this CodeMutator can perform, to allow separate 36 public static class AssociatedMutation extends Mutation { 56 // so it can create a CodeMutator and get the correct associated Mutation, as it 59 public Mutation getNewMutation() { 65 public NonsenseStringPrinter(Random rng, MutationStats stats, List<Mutation> mutations) { 71 protected Mutation generateMutation(MutatableCode mutatableCode) { 88 AssociatedMutation mutation = new AssociatedMutation(); local 89 mutation.setup(this.getClass(), mutatableCode); 90 mutation.insertionIdx = insertionIdx 98 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
PoolIndexChanger.java | 23 import dexfuzz.program.Mutation; 34 * mutation that this CodeMutator can perform, to allow separate 37 public static class AssociatedMutation extends Mutation { 57 // so it can create a CodeMutator and get the correct associated Mutation, as it 60 public Mutation getNewMutation() { 66 public PoolIndexChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 127 protected Mutation generateMutation(MutatableCode mutatableCode) { 166 AssociatedMutation mutation = new AssociatedMutation(); local 167 mutation.setup(this.getClass(), mutatableCode); 168 mutation.poolIndexInsnIdx = poolIndexInsnIdx 176 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
SwitchBranchShifter.java | 24 import dexfuzz.program.Mutation; 33 * mutation that this CodeMutator can perform, to allow separate 36 public static class AssociatedMutation extends Mutation { 59 // so it can create a CodeMutator and get the correct associated Mutation, as it 62 public Mutation getNewMutation() { 68 public SwitchBranchShifter(Random rng, MutationStats stats, List<Mutation> mutations) { 105 protected Mutation generateMutation(MutatableCode mutatableCode) { 141 AssociatedMutation mutation = new AssociatedMutation(); local 142 mutation.setup(this.getClass(), mutatableCode); 143 mutation.switchInsnIdx = switchInsnIdx 152 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
TryBlockShifter.java | 24 import dexfuzz.program.Mutation; 32 * mutation that this CodeMutator can perform, to allow separate 35 public static class AssociatedMutation extends Mutation { 68 // so it can create a CodeMutator and get the correct associated Mutation, as it 71 public Mutation getNewMutation() { 77 public TryBlockShifter(Random rng, MutationStats stats, List<Mutation> mutations) { 96 protected Mutation generateMutation(MutatableCode mutatableCode) { 165 AssociatedMutation mutation = new AssociatedMutation(); local 166 mutation.setup(this.getClass(), mutatableCode); 167 mutation.tryIdx = tryIdx 179 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
VRegChanger.java | 23 import dexfuzz.program.Mutation; 33 * mutation that this CodeMutator can perform, to allow separate 36 public static class AssociatedMutation extends Mutation { 59 // so it can create a CodeMutator and get the correct associated Mutation, as it 62 public Mutation getNewMutation() { 68 public VRegChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 108 protected Mutation generateMutation(MutatableCode mutatableCode) { 144 AssociatedMutation mutation = new AssociatedMutation(); local 145 mutation.setup(this.getClass(), mutatableCode); 146 mutation.vregInsnIdx = vregInsnIdx 155 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
OppositeBranchChanger.java | 22 import dexfuzz.program.Mutation; 29 public OppositeBranchChanger(Random rng, MutationStats stats, List<Mutation> mutations) {
|
RandomBranchChanger.java | 21 import dexfuzz.program.Mutation; 46 public RandomBranchChanger(Random rng, MutationStats stats, List<Mutation> mutations) {
|
NewInstanceChanger.java | 23 import dexfuzz.program.Mutation; 40 * mutation that this CodeMutator can perform, to allow separate 43 public static class AssociatedMutation extends Mutation { 63 // so it can create a CodeMutator and get the correct associated Mutation, as it 66 public Mutation getNewMutation() { 72 public NewInstanceChanger(Random rng, MutationStats stats, List<Mutation> mutations) { 114 protected Mutation generateMutation(MutatableCode mutatableCode) { 130 AssociatedMutation mutation = new AssociatedMutation(); local 131 mutation.setup(this.getClass(), mutatableCode); 132 mutation.newInstanceToChangeIdx = newInstanceIdxInCache 140 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local 172 AssociatedMutation mutation = (AssociatedMutation) uncastMutation; local [all...] |
/art/tools/dexfuzz/src/dexfuzz/program/ |
Mutation.java | 22 * Mutation should be subclassed by an AssociatedMutation in each CodeMutator, 23 * which will describe the parameters of the mutation, and override the getString() 26 public abstract class Mutation { 30 // The first field of any serialized mutation - the mutator that uses it. 32 // The second field of any serialized mutation... 43 * Serializes the field(s) of the mutation to string format. 45 * @return the serialized string representation of the field(s) of the mutation. 50 * Deserializes the strings back to the field(s) of the mutation, 56 * @param elements string array with serialized representations of the field(s) of the mutation.
|
MutationSerializer.java | 31 public static String getMutationString(Mutation mutation) { 33 builder.append(mutation.mutatorClass.getCanonicalName()).append(" "); 34 builder.append(mutation.mutatableCodeIdx).append(" "); 35 builder.append(mutation.getString()); 39 public static void writeMutation(BufferedWriter writer, Mutation mutation) throws IOException { 41 writer.write(mutation.mutatorClass.getCanonicalName() + " " 42 + mutation.mutatableCodeIdx + " "); 44 // Use the mutation's own function to write out the rest of the fields 69 Mutation mutation = null; local [all...] |
/art/tools/dexfuzz/src/dexfuzz/listeners/ |
BaseListener.java | 21 import dexfuzz.program.Mutation; 74 public void handleMutations(List<Mutation> mutations) { }
|