summaryrefslogtreecommitdiff
path: root/src/test/java/com/seaofnodes/simple/fuzzer/Fuzzer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/seaofnodes/simple/fuzzer/Fuzzer.java')
-rw-r--r--src/test/java/com/seaofnodes/simple/fuzzer/Fuzzer.java26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/test/java/com/seaofnodes/simple/fuzzer/Fuzzer.java b/src/test/java/com/seaofnodes/simple/fuzzer/Fuzzer.java
index b29eb2c3..ec9e3910 100644
--- a/src/test/java/com/seaofnodes/simple/fuzzer/Fuzzer.java
+++ b/src/test/java/com/seaofnodes/simple/fuzzer/Fuzzer.java
@@ -85,7 +85,7 @@ public class Fuzzer {
code1 = FuzzerUtils.parse(script, 123, true);
} catch (RuntimeException e1) {
try {
- FuzzerUtils.parse(script, 456, false);
+ FuzzerUtils.parse(script, 456, true);
} catch (RuntimeException e2) {
if (FuzzerUtils.isExceptionFromSameCause(e1, e2)) {
if (!valid || e1.getClass() == Parser.ParseException.class) return;
@@ -163,26 +163,30 @@ public class Fuzzer {
check(sb.toString(), valid, seed);
}
-
/**
- * Check that no exceptions happened.
- * @return true if no exception happened
+ * Run one seed as a regression test. Unlike the exploratory fuzzer path,
+ * this deliberately does not reduce on failure; old bad seeds should fail
+ * fast with the seed visible in the JUnit assertion.
*/
- public boolean noExceptions() {
- return exceptions.isEmpty();
- }
-
- /** Run a fixed chapter-local seed without reducing or swallowing failures. */
public void fuzzPeepsRegression(long seed) {
var rand = new Random(seed);
var sb = new StringBuilder();
var valid = new ScriptGenerator(rand, sb, true).genProgram();
try {
runCheck(sb.toString(), valid);
- } catch (Throwable e) {
- AssertionError ae = new AssertionError("Fuzzer regression seed failed: " + seed);
+ } catch( Throwable e ) {
+ AssertionError ae = new AssertionError("Fuzzer regression seed failed: "+seed);
ae.initCause(e);
throw ae;
}
}
+
+
+ /**
+ * Check that no exceptions happened.
+ * @return true if no exception happened
+ */
+ public boolean noExceptions() {
+ return exceptions.isEmpty();
+ }
}