From 08e608c6fcf745548c73677c5fdebd90bebc1860 Mon Sep 17 00:00:00 2001
From: Ewen Smith <ewens@student.unimelb.edu.au>
Date: Thu, 22 Oct 2020 16:13:47 +1100
Subject: [PATCH] Customised preload for stack
---
fuzzer/Fuzzer.java | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java
index 437c0ec..cdd356b 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) {
--
GitLab