diff options
author | Fabian Meumertzheim <meumertzheim@code-intelligence.com> | 2023-03-22 09:59:16 +0100 |
---|---|---|
committer | Fabian Meumertzheim <fabian@meumertzhe.im> | 2023-03-22 12:35:56 +0100 |
commit | bdd71b3dfdecf537ff355df5a32c92b7b44e8041 (patch) | |
tree | ee60b7f872dedba7808cd5c08fa28be2cfa5a675 /src/test | |
parent | 1605864822b519e7e241504472fd50605ceeb9aa (diff) | |
download | jazzer-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.java | 20 | ||||
-rw-r--r-- | src/test/java/com/code_intelligence/jazzer/mutation/mutator/proto/proto3.proto | 2 |
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 {} |