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