8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out

Reviewed-by: psandoz, rriggs
This commit is contained in:
Claes Redestad 2018-01-10 00:08:46 +01:00
parent 7838184968
commit de4aa804af
2 changed files with 39 additions and 1 deletions
test/jdk
java/util/stream/test/org/openjdk/tests/java/util/stream
lib/testlibrary/bootlib/java.base/java/util/stream

@ -47,6 +47,7 @@ import java.util.stream.TestData;
/*
* @test
* @bug 8071597 8193856
* @run main/timeout=240
*/
@Test
public class WhileOpTest extends OpTestCase {

@ -48,6 +48,7 @@ import java.util.function.ToLongFunction;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.fail;
/**
* LambdaTestHelpers -- assertion methods and useful objects for lambda test cases
@ -277,7 +278,7 @@ public class LambdaTestHelpers {
public static<T> void assertContents(Iterable<T> actual, Iterable<T> expected) {
if (actual instanceof Collection && expected instanceof Collection) {
assertEquals(actual, expected);
assertIterableEquals(actual, expected);
} else {
assertContents(actual.iterator(), expected.iterator());
}
@ -287,6 +288,42 @@ public class LambdaTestHelpers {
assertEquals(toBoxedList(actual), toBoxedList(expected));
}
// Workaround excessive String creation in inner loop in org.testng.Assert.assertEquals(Iterable<?>, Iterable<?>)
static public void assertIterableEquals(Iterable<?> actual, Iterable<?> expected) {
if(actual == expected) {
return;
}
if(actual == null || expected == null) {
fail("Iterables not equal: expected: " + expected + " and actual: " + actual);
}
assertIteratorsEquals(actual.iterator(), expected.iterator());
}
// Workaround excessive String creation in inner loop in org.testng.Assert.assertEquals(Iterator<?>, Iterator<?>)
static public void assertIteratorsEquals(Iterator<?> actual, Iterator<?> expected) {
if (actual == expected) {
return;
}
if (actual == null || expected == null) {
fail("Iterators not equal: expected: " + expected + " and actual: " + actual);
}
while (actual.hasNext() && expected.hasNext()) {
Object e = expected.next();
Object a = actual.next();
assertEquals(a, e, "Iterator contents differ");
}
if(actual.hasNext()) {
fail("Actual iterator returned more elements than the expected iterator.");
} else if(expected.hasNext()) {
fail("Expected iterator returned more elements than the actual iterator.");
}
}
@SafeVarargs
@SuppressWarnings("varargs")
public static<T> void assertContents(Iterator<T> actual, T... expected) {