Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1093)

Unified Diff: mojo/public/js/core_unittests.js

Issue 2131163002: [mojo] Add shared buffer support to mojo JavaScript bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Initialize options.struct_size Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/js/core.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+ }
+
});
« no previous file with comments | « mojo/public/js/core.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698