Daniele created COLLECTIONS-861:
-----------------------------------
Summary: 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
*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)