Index: mojo/apps/js/test/js_to_cpp_unittest.js |
diff --git a/mojo/apps/js/test/js_to_cpp_unittest.js b/mojo/apps/js/test/js_to_cpp_unittest.js |
index 49393f546408fe4cb4ebefac8d535e69cd7cc953..86d395bcf5d7b1877409a72d6981db701540e12d 100644 |
--- a/mojo/apps/js/test/js_to_cpp_unittest.js |
+++ b/mojo/apps/js/test/js_to_cpp_unittest.js |
@@ -2,13 +2,15 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-define("mojo/apps/js/test/js_to_cpp_unittest", [ |
- "mojo/apps/js/test/js_to_cpp.mojom", |
- "mojo/public/js/bindings/connection", |
- "mojo/public/js/bindings/connector", |
- "mojo/public/js/bindings/core", |
-], function (jsToCpp, connection, connector, core) { |
+define('mojo/apps/js/test/js_to_cpp_unittest', [ |
+ 'console', |
+ 'mojo/apps/js/test/js_to_cpp.mojom', |
+ 'mojo/public/js/bindings/connection', |
+ 'mojo/public/js/bindings/connector', |
+ 'mojo/public/js/bindings/core', |
+], function (console, jsToCpp, connection, connector, core) { |
var retainedConnection; |
+ var senderData; |
var BAD_VALUE = 13; |
var DATA_PIPE_PARAMS = { |
flags: core.CREATE_DATA_PIPE_OPTIONS_FLAG_NONE, |
@@ -29,11 +31,11 @@ define("mojo/apps/js/test/js_to_cpp_unittest", [ |
JsSideConnection.prototype.echo = function (numIterations, arg) { |
var arg2; |
- var data_pipe1; |
- var data_pipe2; |
+ var dataPipe1; |
+ var dataPipe2; |
var i; |
- var message_pipe1; |
- var message_pipe2; |
+ var messagePipe1; |
+ var messagePipe2; |
// Ensure expected negative values are negative. |
if (arg.si64 > 0) |
@@ -49,39 +51,42 @@ define("mojo/apps/js/test/js_to_cpp_unittest", [ |
arg.si8 = BAD_VALUE; |
for (i = 0; i < numIterations; ++i) { |
- data_pipe1 = core.createDataPipe(DATA_PIPE_PARAMS); |
- data_pipe2 = core.createDataPipe(DATA_PIPE_PARAMS); |
- message_pipe1 = core.createMessagePipe(); |
- message_pipe2 = core.createMessagePipe(); |
+ dataPipe1 = core.createDataPipe(DATA_PIPE_PARAMS); |
+ dataPipe2 = core.createDataPipe(DATA_PIPE_PARAMS); |
+ messagePipe1 = core.createMessagePipe(); |
+ messagePipe2 = core.createMessagePipe(); |
- arg.data_handle = data_pipe1.consumerHandle; |
- arg.message_handle = message_pipe1.handle1; |
+ arg.data_handle = dataPipe1.consumerHandle; |
+ arg.message_handle = messagePipe1.handle1; |
arg2 = new jsToCpp.EchoArgs(); |
arg2.si64 = -1; |
arg2.si32 = -1; |
arg2.si16 = -1; |
arg2.si8 = -1; |
- arg2.name = "going"; |
- arg2.data_handle = data_pipe2.consumerHandle; |
- arg2.message_handle = message_pipe2.handle1; |
+ arg2.name = 'going'; |
+ arg2.data_handle = dataPipe2.consumerHandle; |
+ arg2.message_handle = messagePipe2.handle1; |
+ writeDataPipe(dataPipe1, senderData); |
+ writeDataPipe(dataPipe2, senderData); |
this.cppSide_.echoResponse(arg, arg2); |
- core.close(data_pipe1.producerHandle); |
- core.close(data_pipe2.producerHandle); |
- core.close(message_pipe1.handle0); |
- core.close(message_pipe2.handle0); |
+ core.close(dataPipe1.producerHandle); |
+ core.close(dataPipe2.producerHandle); |
+ core.close(messagePipe1.handle0); |
+ core.close(messagePipe2.handle0); |
} |
this.cppSide_.testFinished(); |
}; |
JsSideConnection.prototype.bitFlip = function (arg) { |
var iteration = 0; |
- var data_pipe; |
- var message_pipe; |
+ var dataPipe; |
+ var messagePipe; |
var stopSignalled = false; |
var proto = connector.Connector.prototype; |
+ |
proto.realAccept = proto.accept; |
proto.accept = function (message) { |
var offset = iteration / 8; |
@@ -96,22 +101,45 @@ define("mojo/apps/js/test/js_to_cpp_unittest", [ |
stopSignalled = true; |
return false; |
}; |
+ |
while (!stopSignalled) { |
- data_pipe = core.createDataPipe(DATA_PIPE_PARAMS); |
- message_pipe = core.createMessagePipe(); |
- arg.data_handle = data_pipe.consumerHandle; |
- arg.message_handle = message_pipe.handle1; |
+ dataPipe = core.createDataPipe(DATA_PIPE_PARAMS); |
+ messagePipe = core.createMessagePipe(); |
+ writeDataPipe(dataPipe, senderData); |
+ arg.data_handle = dataPipe.consumerHandle; |
+ arg.message_handle = messagePipe.handle1; |
this.cppSide_.bitFlipResponse(arg); |
- core.close(data_pipe.producerHandle); |
- core.close(message_pipe.handle0); |
+ core.close(dataPipe.producerHandle); |
+ core.close(messagePipe.handle0); |
iteration += 1; |
} |
+ |
proto.accept = proto.realAccept; |
proto.realAccept = null; |
this.cppSide_.testFinished(); |
}; |
+ function writeDataPipe(pipe, data) { |
+ var writeResult = core.writeData( |
+ pipe.producerHandle, data, core.WRITE_DATA_FLAG_ALL_OR_NONE); |
+ |
+ if (writeResult.result != core.RESULT_OK) { |
+ console.log('ERROR: Write result was ' + writeResult.result); |
+ return false; |
+ } |
+ if (writeResult.numBytes != data.length) { |
+ console.log('ERROR: Write length was ' + writeResult.numBytes); |
+ return false; |
+ } |
+ return true; |
+ } |
+ |
return function(handle) { |
+ var i; |
+ senderData = new Uint8Array(DATA_PIPE_PARAMS.capacityNumBytes); |
+ for (i = 0; i < senderData.length; ++i) |
+ senderData[i] = i; |
+ |
retainedConnection = new connection.Connection(handle, JsSideConnection, |
jsToCpp.CppSideProxy); |
}; |