diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-04-10 18:54:19 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-04-10 18:54:19 +0000 |
commit | 673484cb37846c272c4d5ce47e0fd98e97a9985c (patch) | |
tree | 2b9a14c202ba35204279b8da1ddbbc15d487bea0 | |
parent | e82e43c5bad900e8f22f01a09001d2d2f66ef6ca (diff) | |
parent | 8c3c3f15fe1058a2c901d7a72b0cd20f31d1f3c9 (diff) | |
download | libcore-android14-tests-dev.tar.gz |
Merge "Update org.openjdk.tests.java.util.stream.FindFirstOpTest" into android14-tests-devandroid14-tests-dev
2 files changed, 28 insertions, 12 deletions
diff --git a/ojluni/src/test/java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java b/ojluni/src/test/java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java index 256933ea44e..d5ac82dff95 100644 --- a/ojluni/src/test/java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java +++ b/ojluni/src/test/java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,9 +37,9 @@ import java.util.function.Function; import static org.openjdk.testlib.java.util.stream.LambdaTestHelpers.*; - /** - * FindFirstOpTest + * @test + * @bug 8148115 */ @Test public class FindFirstOpTest extends OpTestCase { @@ -65,15 +65,19 @@ public class FindFirstOpTest extends OpTestCase { } void exerciseStream(TestData.OfRef<Integer> data, Function<Stream<Integer>, Stream<Integer>> fs) { - Optional<Integer> r = exerciseTerminalOps(data, fs, s -> s.findFirst()); - if (r.isPresent()) { - Iterator<Integer> i = fs.apply(data.stream()).iterator(); - assertTrue(i.hasNext()); - assertEquals(i.next(), r.get()); - } - else { - assertFalse(fs.apply(data.stream()).iterator().hasNext()); - } + Iterator<Integer> i = fs.apply(data.stream()).iterator(); + Optional<Integer> expected = i.hasNext() ? Optional.of(i.next()) : Optional.empty(); + withData(data).terminal(fs, s -> s.findFirst()) + .expectedResult(expected) + .resultAsserter((act, exp, ord, par) -> { + if (par & !ord) { + assertContains(act, fs.apply(data.stream()).iterator()); + } + else { + assertEquals(act, exp); + } + }) + .exercise(); } @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class) diff --git a/ojluni/src/test/java/util/stream/testlib/org/openjdk/testlib/java/util/stream/LambdaTestHelpers.java b/ojluni/src/test/java/util/stream/testlib/org/openjdk/testlib/java/util/stream/LambdaTestHelpers.java index 1cf37df1ab3..60fc966a53d 100644 --- a/ojluni/src/test/java/util/stream/testlib/org/openjdk/testlib/java/util/stream/LambdaTestHelpers.java +++ b/ojluni/src/test/java/util/stream/testlib/org/openjdk/testlib/java/util/stream/LambdaTestHelpers.java @@ -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; /** * LambdaTestHelpers -- assertion methods and useful objects for lambda test cases @@ -401,6 +402,17 @@ public class LambdaTestHelpers { assertEquals(toBoxedMultiset(actual), toBoxedMultiset(expected)); } + // Android-added: taken from OpenJDK 17. Will update soon. + public static<T> void assertContains(Optional<T> actual, Iterator<T> it) { + actual.ifPresentOrElse(r -> { + boolean contained = false; + while (!contained && it.hasNext()) { + contained = Objects.equals(r, it.next()); + } + assertTrue(contained, "Not found: "+r); + }, () -> assertFalse(it.hasNext())); + } + public static void launderAssertion(Runnable r, Supplier<String> additionalInfo) { try { r.run(); |