From c677bd31630b09a0ead0a5f481c516600daf2e74 Mon Sep 17 00:00:00 2001
From: Ewen Smith <ewens@student.unimelb.edu.au>
Date: Fri, 23 Oct 2020 13:04:48 +1100
Subject: [PATCH] Added conditions fo give incorrect vars with instructions

---
 fuzzer/Fuzzer.java | 38 ++++++++++++++++++++++++++------------
 1 file changed, 26 insertions(+), 12 deletions(-)

diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java
index fe9e266..7212839 100644
--- a/fuzzer/Fuzzer.java
+++ b/fuzzer/Fuzzer.java
@@ -202,12 +202,12 @@ public class Fuzzer {
         if (instructionStack.size() >= MAX_STACK) {
             instructionStack.clear();
         }
-        System.out.println("stack: " + Arrays.toString(instructionStack.toArray()));
-        for (List<Instruction> list: pathwayProb.keySet()) {
-            String key = list.toString();
-            String value = pathwayProb.get(list).toString();
-            System.out.println("map: " + key + " " + value);
-        }
+        //System.out.println("stack: " + Arrays.toString(instructionStack.toArray()));
+        //for (List<Instruction> list: pathwayProb.keySet()) {
+        //    String key = list.toString();
+        //    String value = pathwayProb.get(list).toString();
+        //    System.out.println("map: " + key + " " + value);
+        //}
 
     }
 
@@ -283,7 +283,9 @@ public class Fuzzer {
                     name = " " + ((Integer) randomRange(VAR_MIN, VAR_MAX)).toString();
                 } else {
                     // If incorrect, increase the range to outside +- int31_t
-                    name = " " + ((Long) (randomRange(-1,1)*((long) VAR_MAX + (long) randomRange(0, VAR_MAX)))).toString();
+                    if (randomRange(0,100)<50){
+                        name = " " + ((Long) (randomRange(-1,1)*((long) VAR_MAX + (long) randomRange(0, VAR_MAX)))).toString();
+                    }
                 }
                 break;
             case LOAD:
@@ -304,22 +306,30 @@ public class Fuzzer {
                 }
                 break;
             case STORE:
-                // If not correct, make up a name not in the list
+                // If correct, make up a name not in the list
                 if (correct || vars.size() == 0){
                     // Make up a name
                     name = generateName(longVarNames);
                     vars.add(name);
                 }
-                // If no variables, return empty string
+                // Otherwise get name from exiting, or no name
                 else {
-                    name = vars.get(randomRange(0,vars.size()-1));
+                    if (randomRange(0,100)<50) {
+                        name = vars.get(randomRange(0, vars.size() - 1));
+                    }
                 }
 
 
                 name = " " + name;
                 break;
             case SAVE:
-                name = " " + generateName(longVarNames) + ".txt";
+                if (correct){
+                    name = " " + generateName(false) + ".txt";
+                } else {
+                    if (randomRange(0,100)<50) {
+                        name = " " + generateName(longVarNames) + ".txt";
+                    }
+                }
                 break;
             case PLUS:
             case SUB:
@@ -345,7 +355,11 @@ public class Fuzzer {
         int length;
 
         if (longVarName){
-            length = VAR_NAME_LENGTH_MAX + 100;
+            if (randomRange(0,100)<50){
+                length = 0;
+            } else {
+                length = VAR_NAME_LENGTH_MAX + 100;
+            }
         } else {
             // Randomise the length of the string
             length = rand.nextInt(VAR_NAME_LENGTH_MAX);
-- 
GitLab