Changed the likelihood.
Changed the likelihoood of the mutation and added documentation to the
mutation.
Test: Performed. Ran dexfuzz and waited until mutation kicked in.
Change-Id: I878c1c3434cf17ae8eb1172bf0c326bf15629d5e
diff --git a/tools/dexfuzz/README b/tools/dexfuzz/README
index a635fe9..1f74262 100644
--- a/tools/dexfuzz/README
+++ b/tools/dexfuzz/README
@@ -145,7 +145,7 @@
PoolIndexChanger 30
RandomBranchChanger 30
RandomInstructionGenerator 30
-RegisterClobber 40
+RegisterClobber 10
SwitchBranchShifter 30
TryBlockShifter 40
ValuePrinter 40
diff --git a/tools/dexfuzz/src/dexfuzz/DexFuzz.java b/tools/dexfuzz/src/dexfuzz/DexFuzz.java
index b0ce5a8..2b3b8e7 100644
--- a/tools/dexfuzz/src/dexfuzz/DexFuzz.java
+++ b/tools/dexfuzz/src/dexfuzz/DexFuzz.java
@@ -33,9 +33,9 @@
* Entrypoint class for dexfuzz.
*/
public class DexFuzz {
- // Last version update 1.6: added temporary register to ArrayLengthChanger.
+ // Last version update 1.7: changed the likelihood of RegisterClobber.
private static int majorVersion = 1;
- private static int minorVersion = 6;
+ private static int minorVersion = 7;
private static int seedChangeVersion = 0;
/**
diff --git a/tools/dexfuzz/src/dexfuzz/program/mutators/RegisterClobber.java b/tools/dexfuzz/src/dexfuzz/program/mutators/RegisterClobber.java
index 11da1d4..90f4f0f 100644
--- a/tools/dexfuzz/src/dexfuzz/program/mutators/RegisterClobber.java
+++ b/tools/dexfuzz/src/dexfuzz/program/mutators/RegisterClobber.java
@@ -61,7 +61,7 @@
public RegisterClobber(Random rng, MutationStats stats, List<Mutation> mutations) {
super(rng, stats, mutations);
- likelihood = 40;
+ likelihood = 10;
}
@Override
@@ -90,6 +90,7 @@
newInsn.insn = new Instruction();
newInsn.insn.info = Instruction.getOpcodeInfo(Opcode.CONST_16);
newInsn.insn.vregA = i;
+ // Used zero because it may also apply to objects, resulting in fewer verification failures.
newInsn.insn.vregB = 0;
mutatableCode.insertInstructionAt(newInsn, mutation.regClobberIdx + i);
}