diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-04-11 20:36:40 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-04-11 20:36:40 +0000 |
commit | ba7ab9fecc135e4ffcd856047829586518e01ca1 (patch) | |
tree | 2b9a14c202ba35204279b8da1ddbbc15d487bea0 | |
parent | 38fa13863f6a8e99d14c329706b8f8b666ebc78d (diff) | |
parent | bcda5ad1553b44405796648c390826a612bcda7d (diff) | |
download | libcore-android14-tests-release.tar.gz |
Merge "Snap for 11702682 from 673484cb37846c272c4d5ce47e0fd98e97a9985c to android14-tests-release" into android14-tests-releaseandroid14-tests-release
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(); |