Skip to content
Snippets Groups Projects
Commit 08e608c6 authored by Ewen Smith's avatar Ewen Smith
Browse files

Customised preload for stack

parent 9ea667df
No related branches found
No related tags found
No related merge requests found
......@@ -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,18 +152,16 @@ 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++ ) {
for ( int i = 0 ; i < stackPreload ; i++ ) {
result.append(completeInstruction(true, Instruction.PUSH));
stackSize++;
}
}
if (correct) {
while (counter < numInstructions) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment