diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java index 437c0ec1f865df5a83611b4a8ce3ea91fa78f947..cdd356bc30cf8ca0f05ac247397ae01253992965 100644 --- a/fuzzer/Fuzzer.java +++ b/fuzzer/Fuzzer.java @@ -107,11 +107,17 @@ public class Fuzzer { private static String generateRunInputs(int runCount){ switch (runCount){ case 0: - return generateInput(false, INSTRUCTION_MAX, true); + // Test with stack full + return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE); case 1: - return generateInput(true, INSTRUCTION_MAX, true); + // Test with stack full + return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE - 5); + case 3: + // Run static tests and empty stack + return getStaticTests() + generateInput(true, INSTRUCTION_MAX, 0); } - return generateInput(true, INSTRUCTION_MAX, false); + // Run from random stack + return generateInput(true, INSTRUCTION_MAX, randomRange(0, MAX_STACK_SIZE)); } /*** @@ -132,7 +138,7 @@ public class Fuzzer { boolean stackFull = rand.nextInt(100) < STACK_FULL_PERCENTAGE; result.append(generateInput(false, - INSTRUCTION_MAX, stackFull)); + INSTRUCTION_MAX, MAX_STACK_SIZE)); // Increment generated generated += 1; } @@ -146,17 +152,15 @@ public class Fuzzer { * @param numInstructions for the line * @return the concatenated input for the program as a string */ - private static String generateInput(boolean correct, long numInstructions, boolean stackFull ){ + private static String generateInput(boolean correct, long numInstructions, int stackPreload ){ int stackSize = 0; int counter = 0; StringBuilder result = new StringBuilder(); - if (stackFull) { - for ( int i = 0 ; i < MAX_STACK_SIZE ; i++ ) { - result.append(completeInstruction(true, Instruction.PUSH)); - stackSize++; - } + for ( int i = 0 ; i < stackPreload ; i++ ) { + result.append(completeInstruction(true, Instruction.PUSH)); + stackSize++; } if (correct) {