Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/mojo/shared-buffer.html |
| diff --git a/third_party/WebKit/LayoutTests/mojo/shared-buffer.html b/third_party/WebKit/LayoutTests/mojo/shared-buffer.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..7217c051792bfa77515e6f2906181e6bf1e5ca13 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/mojo/shared-buffer.html |
| @@ -0,0 +1,66 @@ |
| +<!DOCTYPE html> |
| +<title>Mojo shared buffer tests</title> |
| +<script src="../resources/testharness.js"></script> |
| +<script src="../resources/testharnessreport.js"></script> |
| +<script> |
| + |
| +let kBufferSize = 32; |
| + |
| +test(() => { |
| + let {result, handle} = Mojo.createSharedBuffer(kBufferSize); |
| + assert_equals(result, Mojo.RESULT_OK); |
| + assert_true(handle instanceof MojoHandle); |
| +}, "Create shared buffer"); |
| + |
| +test(() => { |
| + let {handle} = Mojo.createSharedBuffer(kBufferSize); |
| + let {result, buffer} = handle.mapBuffer(0, kBufferSize); |
| + assert_equals(result, Mojo.RESULT_OK); |
| + assert_true(buffer instanceof ArrayBuffer); |
| +}, "Map shared buffer"); |
| + |
| +test(() => { |
| + let {handle: handle0} = Mojo.createSharedBuffer(kBufferSize); |
| + let {result, handle: handle1} = handle0.clone(); |
|
yzshen1
2017/03/01 23:11:46
Clone is not a great name in that it sounds like a
alokp
2017/03/01 23:58:34
I was following the C++ API: https://cs.chromium.o
yzshen1
2017/03/02 17:41:07
I would vote for "duplicate" to be consistent with
|
| + assert_equals(result, Mojo.RESULT_OK); |
| + assert_true(handle1 instanceof MojoHandle); |
| +}, "Clone RW shared buffer handle"); |
| + |
| +test(() => { |
| + let {handle: handle0} = Mojo.createSharedBuffer(kBufferSize); |
| + let {result, handle: handle1} = handle0.clone({readOnly: true}); |
| + assert_equals(result, Mojo.RESULT_OK); |
| + assert_true(handle1 instanceof MojoHandle); |
| +}, "Clone RO shared buffer handle"); |
| + |
| +test(() => { |
| + let {handle: handle0} = Mojo.createSharedBuffer(kBufferSize); |
| + let {buffer: buffer0} = handle0.mapBuffer(0, kBufferSize); |
| + let array0 = new Uint8Array(buffer0); |
| + |
| + let {handle: handle1} = handle0.clone({readOnly: true}); |
| + let {buffer: buffer1} = handle1.mapBuffer(0, kBufferSize); |
|
jbroman
2017/03/01 23:29:37
nit: Consider verifying that handle1 != handle0 an
alokp
2017/03/01 23:58:34
Done. Added "handle1 != handle0" checks to clone t
|
| + let array1 = new Uint8Array(buffer1); |
| + |
| + for (let i = 0; i < kBufferSize; ++i) { |
| + array0[i] = i; |
| + assert_equals(array1[i], i); |
| + } |
| +}, "Read from RO shared buffer handle"); |
| + |
| +test(() => { |
| + let {handle: handle0} = Mojo.createSharedBuffer(kBufferSize); |
| + let {buffer: buffer0} = handle0.mapBuffer(0, kBufferSize); |
| + let array0 = new Uint8Array(buffer0); |
| + |
| + let {handle: handle1} = handle0.clone(); |
| + let {buffer: buffer1} = handle1.mapBuffer(0, kBufferSize); |
| + let array1 = new Uint8Array(buffer1); |
| + |
| + for (let i = 0; i < kBufferSize; ++i) { |
| + array1[i] = i; |
| + assert_equals(array0[i], i); |
| + } |
| +}, "Write to RW shared buffer handle"); |
| + |
| +</script> |