aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorFabian Meumertzheim <meumertzheim@code-intelligence.com>2023-03-22 09:59:16 +0100
committerFabian Meumertzheim <fabian@meumertzhe.im>2023-03-22 12:35:56 +0100
commitbdd71b3dfdecf537ff355df5a32c92b7b44e8041 (patch)
treeee60b7f872dedba7808cd5c08fa28be2cfa5a675 /src/test
parent1605864822b519e7e241504472fd50605ceeb9aa (diff)
downloadjazzer-api-bdd71b3dfdecf537ff355df5a32c92b7b44e8041.tar.gz
mutator: Add support for empty proto messages
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/BuilderMutatorProto3Test.java20
-rw-r--r--src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/proto3.proto2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/BuilderMutatorProto3Test.java b/src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/BuilderMutatorProto3Test.java
index cb54a146..7e1a727e 100644
--- a/src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/BuilderMutatorProto3Test.java
+++ b/src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/BuilderMutatorProto3Test.java
@@ -28,6 +28,7 @@ import com.code_intelligence.jazzer.mutation.mutator.collection.CollectionMutato
import com.code_intelligence.jazzer.mutation.mutator.lang.LangMutators;
import com.code_intelligence.jazzer.mutation.support.TestSupport.MockPseudoRandom;
import com.code_intelligence.jazzer.mutation.support.TypeHolder;
+import com.code_intelligence.jazzer.protobuf.Proto3.EmptyMessage3;
import com.code_intelligence.jazzer.protobuf.Proto3.EnumField3;
import com.code_intelligence.jazzer.protobuf.Proto3.EnumField3.TestEnum;
import com.code_intelligence.jazzer.protobuf.Proto3.EnumFieldOne3;
@@ -482,4 +483,23 @@ class BuilderMutatorProto3Test {
.isEqualTo(OneOfField3.newBuilder().setOtherField(true).setYetAnotherField(true).build());
assertThat(builder.build().hasMessageField()).isFalse();
}
+
+ @Test
+ void testEmptyMessage3() {
+ InPlaceMutator<EmptyMessage3.Builder> mutator =
+ (InPlaceMutator<EmptyMessage3.Builder>) FACTORY.createInPlaceOrThrow(
+ new TypeHolder<EmptyMessage3.@NotNull Builder>() {}.annotatedType());
+ assertThat(mutator.toString()).isEqualTo("FixedValue()");
+ EmptyMessage3.Builder builder = EmptyMessage3.newBuilder();
+
+ try (MockPseudoRandom prng = mockPseudoRandom()) {
+ mutator.initInPlace(builder, prng);
+ }
+ assertThat(builder.build()).isEqualTo(EmptyMessage3.getDefaultInstance());
+
+ try (MockPseudoRandom prng = mockPseudoRandom()) {
+ mutator.mutateInPlace(builder, prng);
+ }
+ assertThat(builder.build()).isEqualTo(EmptyMessage3.getDefaultInstance());
+ }
}
diff --git a/src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/proto3.proto b/src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/proto3.proto
index 88003345..32451a7d 100644
--- a/src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/proto3.proto
+++ b/src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/proto3.proto
@@ -128,3 +128,5 @@ message DoubleField3 {
message RepeatedDoubleField3 {
repeated double some_field = 1;
}
+
+message EmptyMessage3 {}