diff options
author | Fabian Meumertzheim <meumertzheim@code-intelligence.com> | 2023-02-09 16:12:04 +0100 |
---|---|---|
committer | Fabian Meumertzheim <fabian@meumertzhe.im> | 2023-02-16 12:42:32 +0100 |
commit | 2726fee2d238979ab2425339f699b47fc2052200 (patch) | |
tree | 4d07493a9cd0b6cacfcf789699a2da8967ff9ddb /src/test/java/com/code_intelligence/jazzer/mutation | |
parent | 8e2ed8462089b49f2d57f00ebe7ee31c1558d1d9 (diff) | |
download | jazzer-api-2726fee2d238979ab2425339f699b47fc2052200.tar.gz |
mutation: Make `toString()` work with cyclic mutator structures
A new `getDebugString` function is introduced that provides a predicate
as an argument with which implementors can check whether they are part
of a cyclic structure (e.g. a self-referential Protobuf message).
This requires making `SerializingMutator` an abstract class so that an
implementation of `toString` can be provided.
Diffstat (limited to 'src/test/java/com/code_intelligence/jazzer/mutation')
-rw-r--r-- | src/test/java/com/code_intelligence/jazzer/mutation/combinator/MutatorCombinatorsTest.java | 6 | ||||
-rw-r--r-- | src/test/java/com/code_intelligence/jazzer/mutation/support/TestSupport.java | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/test/java/com/code_intelligence/jazzer/mutation/combinator/MutatorCombinatorsTest.java b/src/test/java/com/code_intelligence/jazzer/mutation/combinator/MutatorCombinatorsTest.java index eae088f7..a8424ecb 100644 --- a/src/test/java/com/code_intelligence/jazzer/mutation/combinator/MutatorCombinatorsTest.java +++ b/src/test/java/com/code_intelligence/jazzer/mutation/combinator/MutatorCombinatorsTest.java @@ -27,6 +27,7 @@ import static com.code_intelligence.jazzer.mutation.support.TestSupport.nullData import static com.google.common.truth.Truth.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; +import com.code_intelligence.jazzer.mutation.api.Debuggable; import com.code_intelligence.jazzer.mutation.api.InPlaceMutator; import com.code_intelligence.jazzer.mutation.api.PseudoRandom; import com.code_intelligence.jazzer.mutation.api.SerializingMutator; @@ -35,6 +36,7 @@ import java.io.DataInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.function.Predicate; import org.junit.jupiter.api.Test; class MutatorCombinatorsTest { @@ -77,7 +79,7 @@ class MutatorCombinatorsTest { } @Override - public String toString() { + public String toDebugString(Predicate<Debuggable> isInCycle) { return "List<Integer>"; } }); @@ -120,7 +122,7 @@ class MutatorCombinatorsTest { } @Override - public String toString() { + public String toDebugString(Predicate<Debuggable> isInCycle) { return "List<Integer>"; } }); diff --git a/src/test/java/com/code_intelligence/jazzer/mutation/support/TestSupport.java b/src/test/java/com/code_intelligence/jazzer/mutation/support/TestSupport.java index 9a4c1572..c7744cec 100644 --- a/src/test/java/com/code_intelligence/jazzer/mutation/support/TestSupport.java +++ b/src/test/java/com/code_intelligence/jazzer/mutation/support/TestSupport.java @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static java.util.Arrays.stream; import static java.util.stream.Collectors.toCollection; +import com.code_intelligence.jazzer.mutation.api.Debuggable; import com.code_intelligence.jazzer.mutation.api.PseudoRandom; import com.code_intelligence.jazzer.mutation.api.SerializingMutator; import com.code_intelligence.jazzer.mutation.engine.SeededPseudoRandom; @@ -32,6 +33,7 @@ import java.io.OutputStream; import java.util.ArrayDeque; import java.util.Queue; import java.util.function.Function; +import java.util.function.Predicate; public final class TestSupport { private static final DataOutputStream nullDataOutputStream = @@ -88,7 +90,7 @@ public final class TestSupport { } @Override - public String toString() { + public String toDebugString(Predicate<Debuggable> isInCycle) { if (initialValue == null) { return "null"; } |