aboutsummaryrefslogtreecommitdiff
path: root/agent/src
diff options
context:
space:
mode:
authorKhaled Yakdan <yakdan@code-intelligence.com>2021-10-14 11:49:00 +0200
committerFabian Meumertzheim <fabian@meumertzhe.im>2021-10-19 11:07:51 +0200
commit8311978af16a7e0a9661457b13423adc47540dc8 (patch)
tree0bb18a93a11eb2a7540b996a34b99d0f276dab7f /agent/src
parentb8509959fe239b81cb3fd9a1e219c8f285c4c25d (diff)
downloadjazzer-api-8311978af16a7e0a9661457b13423adc47540dc8.tar.gz
refactor CannedFuzzedDataProvider so that it can is useful for multiple tests
Diffstat (limited to 'agent/src')
-rw-r--r--agent/src/main/java/com/code_intelligence/jazzer/api/CannedFuzzedDataProvider.java19
-rw-r--r--agent/src/test/java/com/code_intelligence/jazzer/autofuzz/MetaTest.java26
2 files changed, 20 insertions, 25 deletions
diff --git a/agent/src/main/java/com/code_intelligence/jazzer/api/CannedFuzzedDataProvider.java b/agent/src/main/java/com/code_intelligence/jazzer/api/CannedFuzzedDataProvider.java
index a0556468..7209a497 100644
--- a/agent/src/main/java/com/code_intelligence/jazzer/api/CannedFuzzedDataProvider.java
+++ b/agent/src/main/java/com/code_intelligence/jazzer/api/CannedFuzzedDataProvider.java
@@ -14,12 +14,11 @@
package com.code_intelligence.jazzer.api;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
+import java.io.*;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Iterator;
+import java.util.List;
/**
* Replays recorded FuzzedDataProvider invocations that were executed while fuzzing.
@@ -41,6 +40,20 @@ final public class CannedFuzzedDataProvider implements FuzzedDataProvider {
nextReply = recordedReplies.iterator();
}
+ public static CannedFuzzedDataProvider create(List<Object> objects) {
+ try {
+ try (ByteArrayOutputStream bout = new ByteArrayOutputStream()) {
+ try (ObjectOutputStream out = new ObjectOutputStream(bout)) {
+ out.writeObject(new ArrayList<>(objects));
+ String base64 = Base64.getEncoder().encodeToString(bout.toByteArray());
+ return new CannedFuzzedDataProvider(base64);
+ }
+ }
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
@Override
public boolean consumeBoolean() {
return (boolean) nextReply.next();
diff --git a/agent/src/test/java/com/code_intelligence/jazzer/autofuzz/MetaTest.java b/agent/src/test/java/com/code_intelligence/jazzer/autofuzz/MetaTest.java
index 1e1fe09e..c491ed66 100644
--- a/agent/src/test/java/com/code_intelligence/jazzer/autofuzz/MetaTest.java
+++ b/agent/src/test/java/com/code_intelligence/jazzer/autofuzz/MetaTest.java
@@ -20,44 +20,26 @@ import static org.junit.Assert.assertTrue;
import com.code_intelligence.jazzer.api.CannedFuzzedDataProvider;
import com.code_intelligence.jazzer.api.FuzzedDataProvider;
import com.google.json.JsonSanitizer;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.util.ArrayList;
+
import java.util.Arrays;
-import java.util.Base64;
import java.util.Collections;
-import java.util.List;
+
import org.junit.Test;
public class MetaTest {
- private static FuzzedDataProvider makeFuzzedDataProvider(List<Object> replies) {
- try {
- try (ByteArrayOutputStream bout = new ByteArrayOutputStream()) {
- try (ObjectOutputStream out = new ObjectOutputStream(bout)) {
- out.writeObject(new ArrayList<>(replies));
- String base64 = Base64.getEncoder().encodeToString(bout.toByteArray());
- return new CannedFuzzedDataProvider(base64);
- }
- }
- } catch (IOException e) {
- throw new IllegalStateException(e);
- }
- }
-
public static boolean isFive(int arg) {
return arg == 5;
}
@Test
public void testConsume() {
- FuzzedDataProvider data = makeFuzzedDataProvider(Collections.singletonList(5));
+ FuzzedDataProvider data = CannedFuzzedDataProvider.create(Collections.singletonList(5));
assertEquals(5, Meta.consume(data, int.class));
}
@Test
public void testAutofuzz() {
- FuzzedDataProvider data = makeFuzzedDataProvider(Arrays.asList(5,
+ FuzzedDataProvider data = CannedFuzzedDataProvider.create(Arrays.asList(5,
6, // remainingBytes
"foo",
6, // remainingBytes