RFR 8031428 CountTest causes lambda Ser/Derialization tests to fail

Chris Hegarty chris.hegarty at oracle.com
Fri Jan 10 11:48:17 UTC 2014


Looks fine to me. I don't think AtomicLong was ever needed here.

-Chris.

On 10/01/14 10:01, Paul Sandoz wrote:
> Hi,
>
> A small tweak is required to a recent Stream-based test i added to stop some internal lambda-based ser/derialization (SAND) tests barfing since the test is hostile to ser/derialization, and infact i should have probably written the test like below in the first place.
>
> Kumar has verified it fixes the SAND test failures.
>
> Paul.
>
> https://bugs.openjdk.java.net/browse/JDK-8031428
>
> diff -r e332a6819993 test/java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java
> --- a/test/java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java	Fri Jan 10 08:22:00 2014 +0100
> +++ b/test/java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java	Fri Jan 10 10:58:06 2014 +0100
> @@ -29,7 +29,6 @@
>
>   package org.openjdk.tests.java.util.stream;
>
> -import java.util.concurrent.atomic.AtomicLong;
>   import java.util.stream.DoubleStream;
>   import java.util.stream.DoubleStreamTestDataProvider;
>   import java.util.stream.IntStream;
> @@ -47,45 +46,41 @@
>
>       @Test(dataProvider = "StreamTestData<Integer>", dataProviderClass = StreamTestDataProvider.class)
>       public void testOps(String name, TestData.OfRef<Integer> data) {
> -        AtomicLong expectedCount = new AtomicLong();
> -        data.stream().forEach(e -> expectedCount.incrementAndGet());
> +        long expectedCount = data.size();
>
>           withData(data).
>                   terminal(Stream::count).
> -                expectedResult(expectedCount.get()).
> +                expectedResult(expectedCount).
>                   exercise();
>       }
>
>       @Test(dataProvider = "IntStreamTestData", dataProviderClass = IntStreamTestDataProvider.class)
>       public void testOps(String name, TestData.OfInt data) {
> -        AtomicLong expectedCount = new AtomicLong();
> -        data.stream().forEach(e -> expectedCount.incrementAndGet());
> +        long expectedCount = data.size();
>
>           withData(data).
>                   terminal(IntStream::count).
> -                expectedResult(expectedCount.get()).
> +                expectedResult(expectedCount).
>                   exercise();
>       }
>
>       @Test(dataProvider = "LongStreamTestData", dataProviderClass = LongStreamTestDataProvider.class)
>       public void testOps(String name, TestData.OfLong data) {
> -        AtomicLong expectedCount = new AtomicLong();
> -        data.stream().forEach(e -> expectedCount.incrementAndGet());
> +        long expectedCount = data.size();
>
>           withData(data).
>                   terminal(LongStream::count).
> -                expectedResult(expectedCount.get()).
> +                expectedResult(expectedCount).
>                   exercise();
>       }
>
>       @Test(dataProvider = "DoubleStreamTestData", dataProviderClass = DoubleStreamTestDataProvider.class)
>       public void testOps(String name, TestData.OfDouble data) {
> -        AtomicLong expectedCount = new AtomicLong();
> -        data.stream().forEach(e -> expectedCount.incrementAndGet());
> +        long expectedCount = data.size();
>
>           withData(data).
>                   terminal(DoubleStream::count).
> -                expectedResult(expectedCount.get()).
> +                expectedResult(expectedCount).
>                   exercise();
>       }
>   }
>



More information about the core-libs-dev mailing list