From 8857f653128dba1908a790e4affc056cad17b7de Mon Sep 17 00:00:00 2001 From: Ewen Smith <ewens@student.unimelb.edu.au> Date: Fri, 23 Oct 2020 15:08:02 +1100 Subject: [PATCH] Removed all false instructions --- fuzzer/Fuzzer.java | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java index 8c8bf28..caf44ca 100644 --- a/fuzzer/Fuzzer.java +++ b/fuzzer/Fuzzer.java @@ -118,22 +118,22 @@ public class Fuzzer { switch (runCount){ case 0: // Test with stack full - return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE, false, false, false); + return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE, false, false); case 1: // Test with stack full - return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE - 1, false, false, false); + return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE - 1, false, false); case 3: // Run static tests and empty stack - return getStaticTests() + generateInput(true, INSTRUCTION_MAX, 0, false, false, false); + return getStaticTests() + generateInput(true, INSTRUCTION_MAX, 0, false, false); case 4: // Test with dynamic probability - return generateInput(true, INSTRUCTION_MAX, 0, true, false, false); + return generateInput(true, INSTRUCTION_MAX, 0, true, false); case 5: // Test with long var names - return generateInput(true, INSTRUCTION_MAX, 0, false, true, false); + return generateInput(true, INSTRUCTION_MAX, 0, false, true); } // Run from random stack - return generateInput(true, INSTRUCTION_MAX, 0, false, false, false); + return generateInput(true, INSTRUCTION_MAX, 0, false, false); } @@ -155,7 +155,7 @@ public class Fuzzer { boolean stackFull = rand.nextInt(100) < STACK_FULL_PERCENTAGE; result.append(generateInput(false, - INSTRUCTION_MAX, MAX_STACK_SIZE, false, false, false)); + INSTRUCTION_MAX, MAX_STACK_SIZE, false, false)); // Increment generated generated += 1; } @@ -201,14 +201,14 @@ 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, int stackPreload, boolean dynamicProb, boolean longVarNames, boolean badInstruct){ + private static String generateInput(boolean correct, long numInstructions, int stackPreload, boolean dynamicProb, boolean longVarNames){ int stackSize = 0; int counter = 0; StringBuilder result = new StringBuilder(); for ( int i = 0 ; i < stackPreload ; i++ ) { - result.append(completeInstruction(true, Instruction.PUSH, false, false)); + result.append(completeInstruction(true, Instruction.PUSH, false)); stackSize++; } @@ -216,7 +216,7 @@ public class Fuzzer { while (counter < numInstructions) { Instruction newInstr = Instruction.getRandomInstruction(stackSize, instructionStack, pathwayProb); stackSize = stackSize + newInstr.getStackChange(); - result.append(completeInstruction(true, newInstr, false, false)); + result.append(completeInstruction(true, newInstr, false)); if (dynamicProb) { incrementStackAndCount(newInstr); } @@ -227,13 +227,13 @@ public class Fuzzer { Instruction newInstr; if (rand.nextInt(100) < LINE_ERROR_PERCENTAGE){ newInstr = Instruction.getRandomInstruction(2, instructionStack, pathwayProb); - result.append(completeInstruction(false, newInstr, longVarNames, badInstruct)); + result.append(completeInstruction(false, newInstr, longVarNames)); if (dynamicProb) { incrementStackAndCount(newInstr); } } else { newInstr = Instruction.getRandomInstruction(stackSize, instructionStack, pathwayProb); - result.append(completeInstruction(true, newInstr, false, false)); + result.append(completeInstruction(true, newInstr, false)); if (dynamicProb) { incrementStackAndCount(newInstr); } @@ -256,7 +256,7 @@ public class Fuzzer { * @param instruction type * @return string with parameter */ - private static String completeInstruction(boolean correct, Instruction instruction, boolean longVarNames, boolean badInstruct){ + private static String completeInstruction(boolean correct, Instruction instruction, boolean longVarNames){ String name = ""; switch (instruction) { @@ -266,18 +266,14 @@ public class Fuzzer { name = " " + ((Integer) randomRange(VAR_MIN, VAR_MAX)).toString(); } else { // If incorrect, increase the range to outside +- int31_t - if (!badInstruct) { name = " " + ((Long) (randomRange(-1, 1) * ((long) VAR_MAX + (long) randomRange(0, VAR_MAX)))).toString(); - } } break; case LOAD: case REM: // If not correct, make up a name not in the list if (!correct){ - if (!badInstruct) { name = generateName(longVarNames); - } } // If no variables, return empty string else if (vars.size() == 0){ @@ -299,9 +295,7 @@ public class Fuzzer { } // Otherwise get name from exiting, or no name else { - if (!badInstruct) { name = vars.get(randomRange(0, vars.size() - 1)); - } } @@ -311,9 +305,7 @@ public class Fuzzer { if (correct){ name = " " + generateName(false) + ".txt"; } else { - if (!badInstruct) { name = " " + generateName(longVarNames) + ".txt"; - } } break; case PLUS: -- GitLab