aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com
diff options
context:
space:
mode:
authorNorbert Schneider <norbert.schneider@code-intelligence.com>2023-04-24 16:24:53 +0200
committerNorbert Schneider <mail@bertschneider.de>2023-05-19 16:17:07 +0200
commit8f8e38ff1032a3b74bff3eb8e3decba0052ff8ee (patch)
treebce1765912f91c7bcac2dd5c8844891397e1de9e /src/test/java/com
parentadc1a7e12931e69d63a1c5fea3c4c709f786f32b (diff)
downloadjazzer-api-8f8e38ff1032a3b74bff3eb8e3decba0052ff8ee.tar.gz
mutator: Null cross over
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java b/src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java
index 7cc42e17..bc9a65b2 100644
--- a/src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java
+++ b/src/test/java/com/code_intelligence/jazzer/mutation/mutator/lang/NullableMutatorTest.java
@@ -27,6 +27,7 @@ import com.code_intelligence.jazzer.mutation.support.TypeHolder;
import java.lang.reflect.AnnotatedType;
import org.junit.jupiter.api.Test;
+@SuppressWarnings("unchecked")
class NullableMutatorTest {
@Test
void testNullable() {
@@ -74,4 +75,27 @@ class NullableMutatorTest {
SerializingMutator<Boolean> mutator = factory.createOrThrow(boolean.class);
assertThat(mutator.toString()).isEqualTo("Boolean");
}
+
+ @Test
+ void testCrossOver() {
+ SerializingMutator<Boolean> mutator =
+ new ChainedMutatorFactory(new NullableMutatorFactory(), new BooleanMutatorFactory())
+ .createOrThrow(Boolean.class);
+ try (MockPseudoRandom prng = mockPseudoRandom(true)) {
+ Boolean valueCrossedOver = mutator.crossOver(Boolean.TRUE, Boolean.TRUE, prng);
+ assertThat(valueCrossedOver).isNotNull();
+ }
+ try (MockPseudoRandom prng = mockPseudoRandom()) {
+ Boolean bothNull = mutator.crossOver(null, null, prng);
+ assertThat(bothNull).isNull();
+ }
+ try (MockPseudoRandom prng = mockPseudoRandom(false)) {
+ Boolean oneNotNull = mutator.crossOver(null, Boolean.TRUE, prng);
+ assertThat(oneNotNull).isNotNull();
+ }
+ try (MockPseudoRandom prng = mockPseudoRandom(true)) {
+ Boolean nullFrequency = mutator.crossOver(null, Boolean.TRUE, prng);
+ assertThat(nullFrequency).isNull();
+ }
+ }
}