Skip to content

Commit

Permalink
8257212: (bf spec) Clarify byte order of the buffer returned by CharB…
Browse files Browse the repository at this point in the history
…uffer.subsequence(int,int)
  • Loading branch information
c-cleary committed Jan 12, 2021
1 parent 4697cfa commit f194a7d
Show file tree
Hide file tree
Showing 8 changed files with 186 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/java.base/share/classes/java/nio/X-Buffer.java.template
Original file line number Diff line number Diff line change
Expand Up @@ -1835,9 +1835,10 @@ public abstract class $Type$Buffer
* content of this buffer is mutable then modifications to one buffer will
* cause the other to be modified. The new buffer's capacity will be that
* of this buffer, its position will be
* {@code position()} + {@code start}, and its limit will be
* {@code position()} + {@code end}. The new buffer will be
* direct if, and only if, this buffer is direct, and it will be read-only
* {@code position()} + {@code start}, its limit will be
* {@code position()} + {@code end}, and its byte order
* will be identical to that of this buffer. The new buffer will be direct
* if, and only if, this buffer is direct, and it will be read-only
* if, and only if, this buffer is read-only. </p>
*
* @param start
Expand Down
26 changes: 26 additions & 0 deletions test/jdk/java/nio/Buffer/Order-X.java.template
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ public class Order$Type$ extends Order {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);
#if[char]
ck(buf.subSequence(buf.position(), buf.remaining()).order(), expected);
ck(buf.subSequence(buf.position(), buf.position()).order(), expected);
#end[char]
}

static void ck$Type$Buffer() {
Expand All @@ -52,5 +56,27 @@ public class Order$Type$ extends Order {
buf = $Type$Buffer.allocate(LENGTH);
ck(buf.order(), nord);
ck$Type$Buffer(buf, nord);
#if[char]
buf = $Type$Buffer.wrap("abcdefghijk");
ck(buf.order(), nord);
ck$Type$Buffer(buf, nord);

buf = $Type$Buffer.wrap("abcdefghijk", 0, 5);
ck(buf.order(), nord);
ck$Type$Buffer(buf, nord);

buf = $Type$Buffer.wrap(array).subSequence(0, LENGTH);
ck(buf.order(), nord);
ck$Type$Buffer(buf, nord);

buf = ByteBuffer.wrap(new byte[LENGTH]).as$Type$Buffer();
ck(buf.order(), be);
ck$Type$Buffer(buf, be);

buf = ByteBuffer.wrap(new byte[LENGTH]).order(le).as$Type$Buffer();
ck(buf.order(), le);
ck$Type$Buffer(buf, le);
#end[char]
}
}

26 changes: 26 additions & 0 deletions test/jdk/java/nio/Buffer/OrderChar.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ private static void ckCharBuffer(CharBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);

ck(buf.subSequence(buf.position(), buf.remaining()).order(), expected);
ck(buf.subSequence(buf.position(), buf.position()).order(), expected);

}

static void ckCharBuffer() {
Expand All @@ -52,5 +56,27 @@ static void ckCharBuffer() {
buf = CharBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckCharBuffer(buf, nord);

buf = CharBuffer.wrap("abcdefghijk");
ck(buf.order(), nord);
ckCharBuffer(buf, nord);

buf = CharBuffer.wrap("abcdefghijk", 0, 5);
ck(buf.order(), nord);
ckCharBuffer(buf, nord);

buf = CharBuffer.wrap(array).subSequence(0, LENGTH);
ck(buf.order(), nord);
ckCharBuffer(buf, nord);

buf = ByteBuffer.wrap(new byte[LENGTH]).asCharBuffer();
ck(buf.order(), be);
ckCharBuffer(buf, be);

buf = ByteBuffer.wrap(new byte[LENGTH]).order(le).asCharBuffer();
ck(buf.order(), le);
ckCharBuffer(buf, le);

}
}

26 changes: 26 additions & 0 deletions test/jdk/java/nio/Buffer/OrderDouble.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ private static void ckDoubleBuffer(DoubleBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);




}

static void ckDoubleBuffer() {
Expand All @@ -52,5 +56,27 @@ static void ckDoubleBuffer() {
buf = DoubleBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckDoubleBuffer(buf, nord);





















}
}

26 changes: 26 additions & 0 deletions test/jdk/java/nio/Buffer/OrderFloat.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ private static void ckFloatBuffer(FloatBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);




}

static void ckFloatBuffer() {
Expand All @@ -52,5 +56,27 @@ static void ckFloatBuffer() {
buf = FloatBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckFloatBuffer(buf, nord);





















}
}

26 changes: 26 additions & 0 deletions test/jdk/java/nio/Buffer/OrderInt.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ private static void ckIntBuffer(IntBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);




}

static void ckIntBuffer() {
Expand All @@ -52,5 +56,27 @@ static void ckIntBuffer() {
buf = IntBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckIntBuffer(buf, nord);





















}
}

26 changes: 26 additions & 0 deletions test/jdk/java/nio/Buffer/OrderLong.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ private static void ckLongBuffer(LongBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);




}

static void ckLongBuffer() {
Expand All @@ -52,5 +56,27 @@ static void ckLongBuffer() {
buf = LongBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckLongBuffer(buf, nord);





















}
}

26 changes: 26 additions & 0 deletions test/jdk/java/nio/Buffer/OrderShort.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ private static void ckShortBuffer(ShortBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);




}

static void ckShortBuffer() {
Expand All @@ -52,5 +56,27 @@ static void ckShortBuffer() {
buf = ShortBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckShortBuffer(buf, nord);





















}
}

0 comments on commit f194a7d

Please sign in to comment.