| Index: mojo/public/js/core_unittests.js
|
| diff --git a/mojo/public/js/core_unittests.js b/mojo/public/js/core_unittests.js
|
| index 12364dc67ef92a1278e109ab443f84b370460bf5..395ed053eef2217326d4dc23afc2120a11c9058f 100644
|
| --- a/mojo/public/js/core_unittests.js
|
| +++ b/mojo/public/js/core_unittests.js
|
| @@ -24,6 +24,7 @@ define([
|
| runWithDataPipeWithOptions(testReadAndWriteDataPipe);
|
| runWithMessagePipe(testIsHandleMessagePipe);
|
| runWithDataPipe(testIsHandleDataPipe);
|
| + runWithSharedBuffer(testSharedBuffer);
|
| gc.collectGarbage(); // should not crash
|
| this.result = "PASS";
|
|
|
| @@ -73,6 +74,17 @@ define([
|
| expect(core.close(pipe.consumerHandle)).toBe(core.RESULT_OK);
|
| }
|
|
|
| + function runWithSharedBuffer(test) {
|
| + let buffer_size = 32;
|
| + let sharedBuffer = core.createSharedBuffer(buffer_size,
|
| + core.CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE);
|
| +
|
| + expect(sharedBuffer.result).toBe(core.RESULT_OK);
|
| + expect(core.isHandle(sharedBuffer.handle)).toBeTruthy();
|
| +
|
| + test(sharedBuffer, buffer_size);
|
| + }
|
| +
|
| function testNop(pipe) {
|
| }
|
|
|
| @@ -195,4 +207,40 @@ define([
|
| expect(core.isHandle(pipe.producerHandle)).toBeTruthy();
|
| }
|
|
|
| + function testSharedBuffer(sharedBuffer, buffer_size) {
|
| + let offset = 0;
|
| + let mappedBuffer0 = core.mapBuffer(sharedBuffer.handle,
|
| + offset,
|
| + buffer_size,
|
| + core.MAP_BUFFER_FLAG_NONE);
|
| +
|
| + expect(mappedBuffer0.result).toBe(core.RESULT_OK);
|
| +
|
| + let dupedBufferHandle = core.duplicateBufferHandle(sharedBuffer.handle,
|
| + core.DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE);
|
| +
|
| + expect(dupedBufferHandle.result).toBe(core.RESULT_OK);
|
| + expect(core.isHandle(dupedBufferHandle.handle)).toBeTruthy();
|
| +
|
| + let mappedBuffer1 = core.mapBuffer(dupedBufferHandle.handle,
|
| + offset,
|
| + buffer_size,
|
| + core.MAP_BUFFER_FLAG_NONE);
|
| +
|
| + expect(mappedBuffer1.result).toBe(core.RESULT_OK);
|
| +
|
| + let buffer0 = new Uint8Array(mappedBuffer0.buffer);
|
| + let buffer1 = new Uint8Array(mappedBuffer1.buffer);
|
| + for(let i = 0; i < buffer0.length; ++i) {
|
| + buffer0[i] = i;
|
| + expect(buffer1[i]).toBe(i);
|
| + }
|
| +
|
| + expect(core.unmapBuffer(mappedBuffer0.buffer)).toBe(core.RESULT_OK);
|
| + expect(core.unmapBuffer(mappedBuffer1.buffer)).toBe(core.RESULT_OK);
|
| +
|
| + expect(core.close(dupedBufferHandle.handle)).toBe(core.RESULT_OK);
|
| + expect(core.close(sharedBuffer.handle)).toBe(core.RESULT_OK);
|
| + }
|
| +
|
| });
|
|
|