[ https://issues.apache.org/jira/browse/COLLECTIONS-861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniele updated COLLECTIONS-861: -------------------------------- Description: *CollectionUtils.select(Iterable, Predicate, Collection, Collection):* A ConcurrentModificationException can be thrown, but not signed in the specification, also "return the outputCollection" is ambiguous because outputCollection is a parameter and it seems like the method should return that parameter as it is, but in is modified inside the method. *Test used (generated by EvoSuite):* {code:java} /* * This file was automatically generated by EvoSuite * Sun May 05 21:09:14 GMT 2024 */ package org.apache.commons.collections4;import org.junit.Test; import static org.junit.Assert.*; import static shaded.org.evosuite.shaded.org.mockito.Mockito.*; import static shaded.org.evosuite.runtime.EvoAssertions.*; import java.util.Collection; import java.util.Comparator; import java.util.ConcurrentModificationException; import java.util.LinkedList; import java.util.PriorityQueue; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; import org.apache.commons.collections4.functors.UniquePredicate; import org.junit.runner.RunWith; import shaded.org.evosuite.runtime.EvoRunner; import shaded.org.evosuite.runtime.EvoRunnerParameters; import shaded.org.evosuite.runtime.ViolatedAssumptionAnswer;@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVNET = true, separateClassLoader = true) public class CollectionUtils_12_failure_Test extends CollectionUtils_12_failure_Test_scaffolding { //Covered goal: org.apache.commons.collections4.CollectionUtils.select(Ljava/lang/Iterable;Lorg/apache/commons/collections4/Predicate;Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;: true ---> methodResultID.equals(args[2]) -- path condition org.apache.commons.collections4.EvoSuiteEvaluator_12_failure (id = 3) @Test(timeout = 4000) public void testSelect_OutputCollection() throws Throwable { Comparator<? super Object> comparator0 = (Comparator<? super Object>) mock(Comparator.class, new ViolatedAssumptionAnswer()); doReturn(89).when(comparator0).compare(any(), any()); PriorityQueue<Object> priorityQueue0 = new PriorityQueue<Object>(comparator0); LinkedList<Object> linkedList0 = new LinkedList<Object>(); boolean boolean0 = priorityQueue0.add(linkedList0); UniquePredicate<Object> uniquePredicate0 = new UniquePredicate<Object>(); // Undeclared exception! try { //** Guard on which the oracle of method select depends: true org.junit.Assume.assumeTrue(true); //** Precondition on which method select depends: (args[0]==null) == false && (args[1]==null) == false || (args[2]==null) == false org.junit.Assume.assumeTrue((((Iterable<?>) priorityQueue0) == null) == false && (((Predicate<? super Object>) uniquePredicate0) == null) == false || (((Collection<Object>) priorityQueue0) == null) == false); //** Precondition on which method select depends: (args[0]==null) == false || (args[1]==null) == false || (args[3]==null) == false org.junit.Assume.assumeTrue((((Iterable<?>) priorityQueue0) == null) == false || (((Predicate<? super Object>) uniquePredicate0) == null) == false || (((Collection<Object>) priorityQueue0) == null) == false); //** Automatically generated test oracle is: the outputCollection., with guard: { description: the outputCollection., conditionText: true } java.util.Collection<?> //** Automatically generated test oracle is: the outputCollection., with guard: { description: the outputCollection., conditionText: true } _methodResult__ = CollectionUtils.select((Iterable<?>) priorityQueue0, (Predicate<? super Object>) uniquePredicate0, (Collection<Object>) priorityQueue0, (Collection<Object>) priorityQueue0); //** Postcondition on which the oracle of method select depends: methodResultID.equals(args[2]) org.junit.Assert.assertTrue(_methodResult__.equals(((Collection<Object>) priorityQueue0))); } catch (ConcurrentModificationException e) { // // no message in exception (getMessage() returned null) // verifyException("java.util.PriorityQueue$Itr", e); org.junit.Assert.fail(); } if (true) throw new RuntimeException("Failure-driven test case completed without pinpointing any failure. This should not happen. Please check"); } }{code} *CollectionUtils.selectRejected(Iterable, Predicate, Collection):* A RuntimeException can be thrown, but not signed in the specification, also "return outputCollection" is ambiguous because outputCollection is a parameter and it seems like the method should return that parameter as it is, but in is modified inside the method. *Test used (generated by EvoSuite):* {code:java} /* * This file was automatically generated by EvoSuite * Sun May 05 21:09:36 GMT 2024 */package org.apache.commons.collections4; import org.junit.Test;import static org.junit.Assert.*;import static shaded.org.evosuite.shaded.org.mockito.Mockito.*;import static shaded.org.evosuite.runtime.EvoAssertions.*;import java.util.Collection;import java.util.LinkedList;import java.util.Vector;import org.apache.commons.collections4.CollectionUtils;import org.apache.commons.collections4.Predicate;import org.apache.commons.collections4.functors.ExceptionPredicate;import org.apache.commons.collections4.functors.NullIsExceptionPredicate;import org.junit.runner.RunWith;import shaded.org.evosuite.runtime.EvoRunner;import shaded.org.evosuite.runtime.EvoRunnerParameters;import shaded.org.evosuite.runtime.ViolatedAssumptionAnswer; @RunWith(EvoRunner.class)@EvoRunnerParameters(mockJVMNonDeterminism = true, useVNET = true, separateClassLoader = true)public class CollectionUtils_14_failure_Test extends CollectionUtils_14_failure_Test_scaffolding { //Covered goal: org.apache.commons.collections4.CollectionUtils.selectRejected(Ljava/lang/Iterable;Lorg/apache/commons/collections4/Predicate;Ljava/util/Collection;)Ljava/util/Collection;: true ---> methodResultID.equals(args[2]) -- path condition org.apache.commons.collections4.EvoSuiteEvaluator_14_failure (id = 7) @Test(timeout = 4000) public void testSelectRejected_OutputCollection() throws Throwable { Predicate<Object> predicate0 = ExceptionPredicate.exceptionPredicate(); NullIsExceptionPredicate<Object> nullIsExceptionPredicate0 = new NullIsExceptionPredicate<Object>(predicate0); LinkedList<Object> linkedList0 = new LinkedList<Object>(); Vector<Comparable<Object>> vector0 = new Vector<Comparable<Object>>(6935, 6935); Comparable<Object> comparable0 = (Comparable<Object>) mock(Comparable.class, new ViolatedAssumptionAnswer()); boolean boolean0 = vector0.add(comparable0); // Undeclared exception! try { //** Guard on which the oracle of method selectRejected depends: true org.junit.Assume.assumeTrue(true); //** Precondition on which method selectRejected depends: (args[2]==null) == false org.junit.Assume.assumeTrue((((Collection<Object>) linkedList0) == null) == false); //** Automatically generated test oracle is: outputCollection., with guard: { description: outputCollection., conditionText: true } java.util.Collection<?> //** Automatically generated test oracle is: outputCollection., with guard: { description: outputCollection., conditionText: true } _methodResult__ = CollectionUtils.selectRejected((Iterable<? extends Comparable<Object>>) vector0, (Predicate<? super Comparable<Object>>) nullIsExceptionPredicate0, (Collection<Object>) linkedList0); //** Postcondition on which the oracle of method selectRejected depends: methodResultID.equals(args[2]) org.junit.Assert.assertTrue(_methodResult__.equals(((Collection<Object>) linkedList0))); } catch (RuntimeException e) { // // ExceptionPredicate invoked // verifyException("org.apache.commons.collections4.functors.ExceptionPredicate", e); org.junit.Assert.fail(); } if (true) throw new RuntimeException("Failure-driven test case completed without pinpointing any failure. This should not happen. Please check"); }}{code} was: *CollectionUtils.select(Iterable, Predicate, Collection, Collection):* A ConcurrentModificationException can be thrown, but not signed in the specification, also "return the outputCollection" is ambiguous because outputCollection is a parameter and it seems like the method should return that parameter as it is, but in is modified inside the method. *Test used (generated by EvoSuite):* {code:java} /* * This file was automatically generated by EvoSuite * Sun May 05 21:09:14 GMT 2024 */ package org.apache.commons.collections4;import org.junit.Test; import static org.junit.Assert.*; import static shaded.org.evosuite.shaded.org.mockito.Mockito.*; import static shaded.org.evosuite.runtime.EvoAssertions.*; import java.util.Collection; import java.util.Comparator; import java.util.ConcurrentModificationException; import java.util.LinkedList; import java.util.PriorityQueue; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; import org.apache.commons.collections4.functors.UniquePredicate; import org.junit.runner.RunWith; import shaded.org.evosuite.runtime.EvoRunner; import shaded.org.evosuite.runtime.EvoRunnerParameters; import shaded.org.evosuite.runtime.ViolatedAssumptionAnswer;@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVNET = true, separateClassLoader = true) public class CollectionUtils_12_failure_Test extends CollectionUtils_12_failure_Test_scaffolding { //Covered goal: org.apache.commons.collections4.CollectionUtils.select(Ljava/lang/Iterable;Lorg/apache/commons/collections4/Predicate;Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;: true ---> methodResultID.equals(args[2]) -- path condition org.apache.commons.collections4.EvoSuiteEvaluator_12_failure (id = 3) @Test(timeout = 4000) public void testSelect_OutputCollection() throws Throwable { Comparator<? super Object> comparator0 = (Comparator<? super Object>) mock(Comparator.class, new ViolatedAssumptionAnswer()); doReturn(89).when(comparator0).compare(any(), any()); PriorityQueue<Object> priorityQueue0 = new PriorityQueue<Object>(comparator0); LinkedList<Object> linkedList0 = new LinkedList<Object>(); boolean boolean0 = priorityQueue0.add(linkedList0); UniquePredicate<Object> uniquePredicate0 = new UniquePredicate<Object>(); // Undeclared exception! try { //** Guard on which the oracle of method select depends: true org.junit.Assume.assumeTrue(true); //** Precondition on which method select depends: (args[0]==null) == false && (args[1]==null) == false || (args[2]==null) == false org.junit.Assume.assumeTrue((((Iterable<?>) priorityQueue0) == null) == false && (((Predicate<? super Object>) uniquePredicate0) == null) == false || (((Collection<Object>) priorityQueue0) == null) == false); //** Precondition on which method select depends: (args[0]==null) == false || (args[1]==null) == false || (args[3]==null) == false org.junit.Assume.assumeTrue((((Iterable<?>) priorityQueue0) == null) == false || (((Predicate<? super Object>) uniquePredicate0) == null) == false || (((Collection<Object>) priorityQueue0) == null) == false); //** Automatically generated test oracle is: the outputCollection., with guard: { description: the outputCollection., conditionText: true } java.util.Collection<?> //** Automatically generated test oracle is: the outputCollection., with guard: { description: the outputCollection., conditionText: true } _methodResult__ = CollectionUtils.select((Iterable<?>) priorityQueue0, (Predicate<? super Object>) uniquePredicate0, (Collection<Object>) priorityQueue0, (Collection<Object>) priorityQueue0); //** Postcondition on which the oracle of method select depends: methodResultID.equals(args[2]) org.junit.Assert.assertTrue(_methodResult__.equals(((Collection<Object>) priorityQueue0))); } catch (ConcurrentModificationException e) { // // no message in exception (getMessage() returned null) // verifyException("java.util.PriorityQueue$Itr", e); org.junit.Assert.fail(); } if (true) throw new RuntimeException("Failure-driven test case completed without pinpointing any failure. This should not happen. Please check"); } }{code} *CollectionUtils.selectRejected(Iterable, Predicate, Collection):* A RuntimeException can be thrown, but not signed in the specification, also "return outputCollection" is ambiguous because outputCollection is a parameter and it seems like the method should return that parameter as it is, but in is modified inside the method. *Test used (generated by EvoSuite):* {code:java} /* * This file was automatically generated by EvoSuite * Sun May 05 21:09:36 GMT 2024 */ package org.apache.commons.collections4;import org.junit.Test; import static org.junit.Assert.*; import static shaded.org.evosuite.shaded.org.mockito.Mockito.*; import static shaded.org.evosuite.runtime.EvoAssertions.*; import java.util.Collection; import java.util.LinkedList; import java.util.Vector; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; import org.apache.commons.collections4.functors.ExceptionPredicate; import org.apache.commons.collections4.functors.NullIsExceptionPredicate; import org.junit.runner.RunWith; import shaded.org.evosuite.runtime.EvoRunner; import shaded.org.evosuite.runtime.EvoRunnerParameters; import shaded.org.evosuite.runtime.ViolatedAssumptionAnswer;@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVNET = true, separateClassLoader = true) public class CollectionUtils_14_failure_Test extends CollectionUtils_14_failure_Test_scaffolding { //Covered goal: org.apache.commons.collections4.CollectionUtils.selectRejected(Ljava/lang/Iterable;Lorg/apache/commons/collections4/Predicate;Ljava/util/Collection;)Ljava/util/Collection;: true ---> methodResultID.equals(args[2]) -- path condition org.apache.commons.collections4.EvoSuiteEvaluator_14_failure (id = 7) @Test(timeout = 4000) public void testSelectRejected_OutputCollection() throws Throwable { Predicate<Object> predicate0 = ExceptionPredicate.exceptionPredicate(); NullIsExceptionPredicate<Object> nullIsExceptionPredicate0 = new NullIsExceptionPredicate<Object>(predicate0); LinkedList<Object> linkedList0 = new LinkedList<Object>(); Vector<Comparable<Object>> vector0 = new Vector<Comparable<Object>>(6935, 6935); Comparable<Object> comparable0 = (Comparable<Object>) mock(Comparable.class, new ViolatedAssumptionAnswer()); boolean boolean0 = vector0.add(comparable0); // Undeclared exception! try { //** Guard on which the oracle of method selectRejected depends: true org.junit.Assume.assumeTrue(true); //** Precondition on which method selectRejected depends: (args[2]==null) == false org.junit.Assume.assumeTrue((((Collection<Object>) linkedList0) == null) == false); //** Automatically generated test oracle is: outputCollection., with guard: { description: outputCollection., conditionText: true } java.util.Collection<?> //** Automatically generated test oracle is: outputCollection., with guard: { description: outputCollection., conditionText: true } _methodResult__ = CollectionUtils.selectRejected((Iterable<? extends Comparable<Object>>) vector0, (Predicate<? super Comparable<Object>>) nullIsExceptionPredicate0, (Collection<Object>) linkedList0); //** Postcondition on which the oracle of method selectRejected depends: methodResultID.equals(args[2]) org.junit.Assert.assertTrue(_methodResult__.equals(((Collection<Object>) linkedList0))); } catch (RuntimeException e) { // // ExceptionPredicate invoked // verifyException("org.apache.commons.collections4.functors.ExceptionPredicate", e); org.junit.Assert.fail(); } if (true) throw new RuntimeException("Failure-driven test case completed without pinpointing any failure. This should not happen. Please check"); } }{code} > Documentation Bug: CollectionUtils.select(Iterable, Predicate, Collection, > Collection), CollectionUtils.selectRejected(Iterable, Predicate, Collection) > ------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: COLLECTIONS-861 > URL: https://issues.apache.org/jira/browse/COLLECTIONS-861 > Project: Commons Collections > Issue Type: Bug > Reporter: Daniele > Priority: Minor > > *CollectionUtils.select(Iterable, Predicate, Collection, Collection):* > A ConcurrentModificationException can be thrown, but not signed in the > specification, also "return the outputCollection" is ambiguous because > outputCollection is a parameter and it seems like the method should return > that parameter as it is, but in is modified inside the method. > *Test used (generated by EvoSuite):* > {code:java} > /* > * This file was automatically generated by EvoSuite > * Sun May 05 21:09:14 GMT 2024 > */ > package org.apache.commons.collections4;import org.junit.Test; > import static org.junit.Assert.*; > import static shaded.org.evosuite.shaded.org.mockito.Mockito.*; > import static shaded.org.evosuite.runtime.EvoAssertions.*; > import java.util.Collection; > import java.util.Comparator; > import java.util.ConcurrentModificationException; > import java.util.LinkedList; > import java.util.PriorityQueue; > import org.apache.commons.collections4.CollectionUtils; > import org.apache.commons.collections4.Predicate; > import org.apache.commons.collections4.functors.UniquePredicate; > import org.junit.runner.RunWith; > import shaded.org.evosuite.runtime.EvoRunner; > import shaded.org.evosuite.runtime.EvoRunnerParameters; > import > shaded.org.evosuite.runtime.ViolatedAssumptionAnswer;@RunWith(EvoRunner.class) > @EvoRunnerParameters(mockJVMNonDeterminism = true, useVNET = true, > separateClassLoader = true) > public class CollectionUtils_12_failure_Test extends > CollectionUtils_12_failure_Test_scaffolding { //Covered goal: > org.apache.commons.collections4.CollectionUtils.select(Ljava/lang/Iterable;Lorg/apache/commons/collections4/Predicate;Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;: > true ---> methodResultID.equals(args[2]) -- path condition > org.apache.commons.collections4.EvoSuiteEvaluator_12_failure (id = 3) > @Test(timeout = 4000) > public void testSelect_OutputCollection() throws Throwable { > Comparator<? super Object> comparator0 = (Comparator<? super Object>) > mock(Comparator.class, new ViolatedAssumptionAnswer()); > doReturn(89).when(comparator0).compare(any(), any()); > PriorityQueue<Object> priorityQueue0 = new > PriorityQueue<Object>(comparator0); > LinkedList<Object> linkedList0 = new LinkedList<Object>(); > boolean boolean0 = priorityQueue0.add(linkedList0); > UniquePredicate<Object> uniquePredicate0 = new > UniquePredicate<Object>(); > // Undeclared exception! > try { > //** Guard on which the oracle of method select depends: true > org.junit.Assume.assumeTrue(true); > //** Precondition on which method select depends: (args[0]==null) > == false && (args[1]==null) == false || (args[2]==null) == false > org.junit.Assume.assumeTrue((((Iterable<?>) priorityQueue0) == > null) == false && (((Predicate<? super Object>) uniquePredicate0) == null) == > false || (((Collection<Object>) priorityQueue0) == null) == false); > //** Precondition on which method select depends: (args[0]==null) > == false || (args[1]==null) == false || (args[3]==null) == false > org.junit.Assume.assumeTrue((((Iterable<?>) priorityQueue0) == > null) == false || (((Predicate<? super Object>) uniquePredicate0) == null) == > false || (((Collection<Object>) priorityQueue0) == null) == false); > //** Automatically generated test oracle is: the > outputCollection., with guard: { description: the outputCollection., > conditionText: true } > java.util.Collection<?> //** Automatically generated test oracle > is: the outputCollection., with guard: { description: the outputCollection., > conditionText: true } > _methodResult__ = CollectionUtils.select((Iterable<?>) > priorityQueue0, (Predicate<? super Object>) uniquePredicate0, > (Collection<Object>) priorityQueue0, (Collection<Object>) priorityQueue0); > //** Postcondition on which the oracle of method select depends: > methodResultID.equals(args[2]) > > org.junit.Assert.assertTrue(_methodResult__.equals(((Collection<Object>) > priorityQueue0))); > } catch (ConcurrentModificationException e) { > // > // no message in exception (getMessage() returned null) > // > verifyException("java.util.PriorityQueue$Itr", e); > org.junit.Assert.fail(); > } > if (true) > throw new RuntimeException("Failure-driven test case completed > without pinpointing any failure. This should not happen. Please check"); > } > }{code} > *CollectionUtils.selectRejected(Iterable, Predicate, Collection):* > A RuntimeException can be thrown, but not signed in the specification, also > "return outputCollection" is ambiguous because outputCollection is a > parameter and it seems like the method should return that parameter as it is, > but in is modified inside the method. > *Test used (generated by EvoSuite):* > {code:java} > /* * This file was automatically generated by EvoSuite * Sun May 05 21:09:36 > GMT 2024 */package org.apache.commons.collections4; import > org.junit.Test;import static org.junit.Assert.*;import static > shaded.org.evosuite.shaded.org.mockito.Mockito.*;import static > shaded.org.evosuite.runtime.EvoAssertions.*;import > java.util.Collection;import java.util.LinkedList;import > java.util.Vector;import > org.apache.commons.collections4.CollectionUtils;import > org.apache.commons.collections4.Predicate;import > org.apache.commons.collections4.functors.ExceptionPredicate;import > org.apache.commons.collections4.functors.NullIsExceptionPredicate;import > org.junit.runner.RunWith;import shaded.org.evosuite.runtime.EvoRunner;import > shaded.org.evosuite.runtime.EvoRunnerParameters;import > shaded.org.evosuite.runtime.ViolatedAssumptionAnswer; > @RunWith(EvoRunner.class)@EvoRunnerParameters(mockJVMNonDeterminism = true, > useVNET = true, separateClassLoader = true)public class > CollectionUtils_14_failure_Test extends > CollectionUtils_14_failure_Test_scaffolding { //Covered goal: > org.apache.commons.collections4.CollectionUtils.selectRejected(Ljava/lang/Iterable;Lorg/apache/commons/collections4/Predicate;Ljava/util/Collection;)Ljava/util/Collection;: > true ---> methodResultID.equals(args[2]) -- path condition > org.apache.commons.collections4.EvoSuiteEvaluator_14_failure (id = 7) > @Test(timeout = 4000) public void testSelectRejected_OutputCollection() > throws Throwable { Predicate<Object> predicate0 = > ExceptionPredicate.exceptionPredicate(); NullIsExceptionPredicate<Object> > nullIsExceptionPredicate0 = new NullIsExceptionPredicate<Object>(predicate0); > LinkedList<Object> linkedList0 = new LinkedList<Object>(); > Vector<Comparable<Object>> vector0 = new Vector<Comparable<Object>>(6935, > 6935); Comparable<Object> comparable0 = (Comparable<Object>) > mock(Comparable.class, new ViolatedAssumptionAnswer()); boolean boolean0 = > vector0.add(comparable0); // Undeclared exception! try { //** Guard on which > the oracle of method selectRejected depends: true > org.junit.Assume.assumeTrue(true); //** Precondition on which method > selectRejected depends: (args[2]==null) == false > org.junit.Assume.assumeTrue((((Collection<Object>) linkedList0) == null) == > false); //** Automatically generated test oracle is: outputCollection., with > guard: { description: outputCollection., conditionText: true } > java.util.Collection<?> //** Automatically generated test oracle is: > outputCollection., with guard: { description: outputCollection., > conditionText: true } _methodResult__ = > CollectionUtils.selectRejected((Iterable<? extends Comparable<Object>>) > vector0, (Predicate<? super Comparable<Object>>) nullIsExceptionPredicate0, > (Collection<Object>) linkedList0); //** Postcondition on which the oracle of > method selectRejected depends: methodResultID.equals(args[2]) > org.junit.Assert.assertTrue(_methodResult__.equals(((Collection<Object>) > linkedList0))); } catch (RuntimeException e) { // // ExceptionPredicate > invoked // > verifyException("org.apache.commons.collections4.functors.ExceptionPredicate", > e); org.junit.Assert.fail(); } if (true) throw new > RuntimeException("Failure-driven test case completed without pinpointing any > failure. This should not happen. Please check"); }}{code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)