aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-04-10 18:54:19 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-04-10 18:54:19 +0000
commit673484cb37846c272c4d5ce47e0fd98e97a9985c (patch)
tree2b9a14c202ba35204279b8da1ddbbc15d487bea0
parente82e43c5bad900e8f22f01a09001d2d2f66ef6ca (diff)
parent8c3c3f15fe1058a2c901d7a72b0cd20f31d1f3c9 (diff)
downloadlibcore-android14-tests-dev.tar.gz
Merge "Update org.openjdk.tests.java.util.stream.FindFirstOpTest" into android14-tests-devandroid14-tests-dev
-rw-r--r--ojluni/src/test/java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java28
-rw-r--r--ojluni/src/test/java/util/stream/testlib/org/openjdk/testlib/java/util/stream/LambdaTestHelpers.java12
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();