On Fri, 23 Oct 2020 15:01:48 GMT, Aleksey Shipilev <[email protected]> wrote:
>> Can you see if this helps?
>>
>> diff --git
>> a/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/SegmentTestDataProvider.java
>>
>> b/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/SegmentTestDataProvider.java
>> index 2d2d33d0ab7..c5410865a2b 100644
>> ---
>> a/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/SegmentTestDataProvider.java
>> +++
>> b/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/SegmentTestDataProvider.java
>> @@ -40,12 +40,12 @@ import org.testng.annotations.DataProvider;
>> public class SegmentTestDataProvider {
>>
>> static VarHandle BYTE_HANDLE =
>> MemoryLayouts.JAVA_BYTE.varHandle(byte.class);
>> - static VarHandle CHAR_HANDLE =
>> MemoryLayouts.JAVA_CHAR.varHandle(char.class);
>> - static VarHandle SHORT_HANDLE =
>> MemoryLayouts.JAVA_SHORT.varHandle(short.class);
>> - static VarHandle INT_HANDLE =
>> MemoryLayouts.JAVA_INT.varHandle(int.class);
>> - static VarHandle LONG_HANDLE =
>> MemoryLayouts.JAVA_LONG.varHandle(long.class);
>> - static VarHandle FLOAT_HANDLE =
>> MemoryLayouts.JAVA_FLOAT.varHandle(float.class);
>> - static VarHandle DOUBLE_HANDLE =
>> MemoryLayouts.JAVA_DOUBLE.varHandle(double.class);
>> + static VarHandle CHAR_HANDLE =
>> MemoryLayouts.JAVA_CHAR.withBitAlignment(8).varHandle(char.class);
>> + static VarHandle SHORT_HANDLE =
>> MemoryLayouts.JAVA_SHORT.withBitAlignment(8).varHandle(short.class);
>> + static VarHandle INT_HANDLE =
>> MemoryLayouts.JAVA_INT.withBitAlignment(8).varHandle(int.class);
>> + static VarHandle LONG_HANDLE =
>> MemoryLayouts.JAVA_LONG.withBitAlignment(8).varHandle(long.class);
>> + static VarHandle FLOAT_HANDLE =
>> MemoryLayouts.JAVA_FLOAT.withBitAlignment(8).varHandle(float.class);
>> + static VarHandle DOUBLE_HANDLE =
>> MemoryLayouts.JAVA_DOUBLE.withBitAlignment(8).varHandle(double.class);
>>
>> static boolean compareSegmentsByte(Collection<MemorySegment> segments1,
>> Collection<MemorySegment> segments2, boolean isOrdered) {
>> :
>> ass);
>> - static VarHandle INT_HANDLE =
>> MemoryLayouts.JAVA_INT.varHandle(int.class);
>> - static VarHandle LONG_HANDLE =
>> MemoryLayouts.JAVA_LONG.varHandle(long.class);
>> - static VarHandle FLOAT_HANDLE =
>> MemoryLayouts.JAVA_FLOAT.varHandle(float.class);
>> - static VarHandle DOUBLE_HANDLE =
>> MemoryLayouts.JAVA_DOUBLE.varHandle(double.class);
>> + static VarHandle CHAR_HANDLE =
>> MemoryLayouts.JAVA_CHAR.withBitAlignment(8).varHandle(char.class);
>> + static VarHandle SHORT_HANDLE =
>> MemoryLayouts.JAVA_SHORT.withBitAlignment(8).varHandle(short.class);
>> + static VarHandle INT_HANDLE =
>> MemoryLayouts.JAVA_INT.withBitAlignment(8).varHandle(int.class);
>> + static VarHandle LONG_HANDLE =
>> MemoryLayouts.JAVA_LONG.withBitAlignment(8).varHandle(long.class);
>> + static VarHandle FLOAT_HANDLE =
>> MemoryLayouts.JAVA_FLOAT.withBitAlignment(8).varHandle(float.class);
>> + static VarHandle DOUBLE_HANDLE =
>> MemoryLayouts.JAVA_DOUBLE.withBitAlignment(8).varHandle(double.class);
>>
>> static boolean compareSegmentsByte(Collection<MemorySegment> segments1,
>> Collection<MemorySegment> segments2, boolean isOrdered) {
>> Function<MemorySegment, Byte> mapper = segment ->
>> (byte)BYTE_HANDLE.get(segment.baseAddress());
>
>> Can you see if this helps?
>> static boolean compareSegmentsByte(Collection<MemorySegment> segments1,
>> Collection<MemorySegment> segments2, boolean isOrdered) {
>> :
>> ass);
>
> I can, but the patch is corrupted near this line. Ah, that seems to be the
> stray copy of the hunk above.
Yes, this makes the test pass:
diff --git
a/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/SegmentTestDataProvider.java
b/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/SegmentTestDataProvider.java
index 2d2d33d0ab7..c5410865a2b 100644
---
a/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/SegmentTestDataProvider.java
+++
b/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/SegmentTestDataProvider.java
@@ -40,12 +40,12 @@ import org.testng.annotations.DataProvider;
public class SegmentTestDataProvider {
static VarHandle BYTE_HANDLE =
MemoryLayouts.JAVA_BYTE.varHandle(byte.class);
- static VarHandle CHAR_HANDLE =
MemoryLayouts.JAVA_CHAR.varHandle(char.class);
- static VarHandle SHORT_HANDLE =
MemoryLayouts.JAVA_SHORT.varHandle(short.class);
- static VarHandle INT_HANDLE = MemoryLayouts.JAVA_INT.varHandle(int.class);
- static VarHandle LONG_HANDLE =
MemoryLayouts.JAVA_LONG.varHandle(long.class);
- static VarHandle FLOAT_HANDLE =
MemoryLayouts.JAVA_FLOAT.varHandle(float.class);
- static VarHandle DOUBLE_HANDLE =
MemoryLayouts.JAVA_DOUBLE.varHandle(double.class);
+ static VarHandle CHAR_HANDLE =
MemoryLayouts.JAVA_CHAR.withBitAlignment(8).varHandle(char.class);
+ static VarHandle SHORT_HANDLE =
MemoryLayouts.JAVA_SHORT.withBitAlignment(8).varHandle(short.class);
+ static VarHandle INT_HANDLE =
MemoryLayouts.JAVA_INT.withBitAlignment(8).varHandle(int.class);
+ static VarHandle LONG_HANDLE =
MemoryLayouts.JAVA_LONG.withBitAlignment(8).varHandle(long.class);
+ static VarHandle FLOAT_HANDLE =
MemoryLayouts.JAVA_FLOAT.withBitAlignment(8).varHandle(float.class);
+ static VarHandle DOUBLE_HANDLE =
MemoryLayouts.JAVA_DOUBLE.withBitAlignment(8).varHandle(double.class);
static boolean compareSegmentsByte(Collection<MemorySegment> segments1,
Collection<MemorySegment> segments2, boolean isOrdered) {
Function<MemorySegment, Byte> mapper = segment ->
(byte)BYTE_HANDLE.get(segment.baseAddress());
I can fix the whole thing thus, without problem listing the test then. Agree?
-------------
PR: https://git.openjdk.java.net/jdk/pull/836