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

Unified Diff: mojo/apps/js/test/js_to_cpp_unittest.js

Issue 267343006: Pass data down pipes in mojo fuzzing tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase on clean branch. Created 6 years, 7 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/apps/js/test/js_to_cpp_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « mojo/apps/js/test/js_to_cpp_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698