aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSorin Basca <sorinbasca@google.com>2024-04-10 11:57:49 +0000
committerSorin Basca <sorinbasca@google.com>2024-04-10 16:29:01 +0000
commit8c3c3f15fe1058a2c901d7a72b0cd20f31d1f3c9 (patch)
tree2b9a14c202ba35204279b8da1ddbbc15d487bea0
parente82e43c5bad900e8f22f01a09001d2d2f66ef6ca (diff)
downloadlibcore-8c3c3f15fe1058a2c901d7a72b0cd20f31d1f3c9.tar.gz
Update org.openjdk.tests.java.util.stream.FindFirstOpTest
This updates the test to match the one from https://android-review.git.corp.google.com/c/platform/libcore/+/2571410 Bug: 328166466 Test: CtsLibcoreOjTestCases.org.openjdk.tests.java.util.stream.FindFirstOpTest Merged-In: Iddcdd4ac03ecbf16129ff54d48c3aad2d2a63bd0 Change-Id: I90bf433b60aee9fbccf39681c8cf68bbe20671d9
-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();