< prev index next >

test/jdk/lib/testlibrary/bootlib/java.base/java/util/stream/LambdaTestHelpers.java

Print this page
rev 48452 : 8134459: java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java timed out
Reviewed-by: psandoz, rriggs

*** 46,55 **** --- 46,56 ---- 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 */ public class LambdaTestHelpers {
*** 275,294 **** } } public static<T> void assertContents(Iterable<T> actual, Iterable<T> expected) { if (actual instanceof Collection && expected instanceof Collection) { ! assertEquals(actual, expected); } else { assertContents(actual.iterator(), expected.iterator()); } } public static<T> void assertContents(Iterator<T> actual, Iterator<T> expected) { assertEquals(toBoxedList(actual), toBoxedList(expected)); } @SafeVarargs @SuppressWarnings("varargs") public static<T> void assertContents(Iterator<T> actual, T... expected) { assertContents(actual, Arrays.asList(expected).iterator()); } --- 276,332 ---- } } public static<T> void assertContents(Iterable<T> actual, Iterable<T> expected) { if (actual instanceof Collection && expected instanceof Collection) { ! assertIterableEquals(actual, expected); } else { assertContents(actual.iterator(), expected.iterator()); } } public static<T> void assertContents(Iterator<T> actual, Iterator<T> expected) { assertEquals(toBoxedList(actual), toBoxedList(expected)); } + // Workaround String creation in inner loop inside 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 String creation in inner loop inside 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) { assertContents(actual, Arrays.asList(expected).iterator()); }
< prev index next >