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

Unified Diff: chrome/test/data/extensions/api_test/serial/api/background.js

Issue 10827123: Add serial bulk reads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge help. Created 8 years, 5 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 | « chrome/common/extensions/docs/extensions/samples.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/extensions/api_test/serial/api/background.js
diff --git a/chrome/test/data/extensions/api_test/serial/api/background.js b/chrome/test/data/extensions/api_test/serial/api/background.js
index 81ddffb8e9d1f0917e37228a5a9f0ccf29967681..207899dd49842567f9bb1790ca9d203f0bee66c9 100644
--- a/chrome/test/data/extensions/api_test/serial/api/background.js
+++ b/chrome/test/data/extensions/api_test/serial/api/background.js
@@ -7,14 +7,27 @@ function shouldSkipPort(portName) {
return portName.match(/[Bb]luetooth/);
}
+var createTestArrayBuffer = function() {
+ var bufferSize = 8;
+ var buffer = new ArrayBuffer(bufferSize);
+
+ var uint8View = new Uint8Array(buffer);
+ for (var i = 0; i < bufferSize; i++) {
+ uint8View[i] = 42 + i * 2; // An arbitrary pattern.
+ }
+ return buffer;
+}
+
var testSerial = function() {
var serialPort = null;
var connectionId = -1;
- var testBuffer = new ArrayBuffer(1);
var readTries = 10;
-
- var uint8View = new Uint8Array(testBuffer);
- uint8View[0] = 42;
+ var writeBuffer = createTestArrayBuffer();
+ var writeBufferUint8View = new Uint8Array(writeBuffer);
+ var bufferLength = writeBufferUint8View.length;
+ var readBuffer = new ArrayBuffer(bufferLength);
+ var readBufferUint8View = new Uint8Array(readBuffer);
+ var bytesToRead = bufferLength;
var operation = 0;
var doNextOperation = function() {
@@ -38,10 +51,10 @@ var testSerial = function() {
onGetControlSignals);
break;
case 4:
- chrome.experimental.serial.write(connectionId, testBuffer, onWrite);
+ chrome.experimental.serial.write(connectionId, writeBuffer, onWrite);
break;
case 5:
- chrome.experimental.serial.read(connectionId, onRead);
+ chrome.experimental.serial.read(connectionId, bytesToRead, onRead);
break;
case 6:
chrome.experimental.serial.flush(connectionId, onFlush);
@@ -78,27 +91,30 @@ var testSerial = function() {
}
var onRead = function(readInfo) {
- if (readInfo.bytesRead == 1) {
- var messageUint8View = new Uint8Array(readInfo.data);
- chrome.test.assertEq(uint8View[0], messageUint8View[0],
- 'Byte read was not equal to byte written.');
+ bytesToRead -= readInfo.bytesRead;
+ var readBufferIndex = bufferLength - readInfo.bytesRead;
+ var messageUint8View = new Uint8Array(readInfo.data);
+ for (var i = 0; i < readInfo.bytesRead; i++) {
+ readBufferUint8View[i + readBufferIndex] = messageUint8View[i];
+ }
+ if (bytesToRead == 0) {
+ chrome.test.assertEq(writeBufferUint8View, readBufferUint8View,
+ 'Buffer read was not equal to buffer written.');
doNextOperation();
} else {
if (--readTries > 0)
setTimeout(repeatOperation, 100);
else
- chrome.test.assertTrue(false,
- 'read() failed to return bytesRead 1.');
+ chrome.test.assertTrue(
+ false,
+ 'read() failed to return requested number of bytes.');
}
};
var onWrite = function(writeInfo) {
- chrome.test.assertEq(1, writeInfo.bytesWritten,
+ chrome.test.assertEq(bufferLength, writeInfo.bytesWritten,
'Failed to write byte.');
- if (writeInfo.bytesWritten == 1)
- doNextOperation();
- else
- skipToTearDown();
+ doNextOperation();
};
var onGetControlSignals = function(options) {
« no previous file with comments | « chrome/common/extensions/docs/extensions/samples.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698