node/test/parallel/test-http-buffer-sanity.js
James M Snell 85ab4a5f12 buffer: add .from(), .alloc() and .allocUnsafe()
Several changes:

* Soft-Deprecate Buffer() constructors
* Add `Buffer.from()`, `Buffer.alloc()`, and `Buffer.allocUnsafe()`
* Add `--zero-fill-buffers` command line option
* Add byteOffset and length to `new Buffer(arrayBuffer)` constructor
* buffer.fill('') previously had no effect, now zero-fills
* Update the docs

PR-URL: https://github.com/nodejs/node/pull/4682
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2016-03-16 08:34:02 -07:00

71 lines
1.4 KiB
JavaScript

'use strict';
var common = require('../common');
var assert = require('assert');
var http = require('http');
var bufferSize = 5 * 1024 * 1024;
var measuredSize = 0;
var buffer = Buffer.allocUnsafe(bufferSize);
for (var i = 0; i < buffer.length; i++) {
buffer[i] = i % 256;
}
var web = http.Server(function(req, res) {
web.close();
console.log(req.headers);
var i = 0;
req.on('data', function(d) {
process.stdout.write(',');
measuredSize += d.length;
for (var j = 0; j < d.length; j++) {
assert.equal(buffer[i], d[j]);
i++;
}
});
req.on('end', function() {
res.writeHead(200);
res.write('thanks');
res.end();
console.log('response with \'thanks\'');
});
req.connection.on('error', function(e) {
console.log('http server-side error: ' + e.message);
process.exit(1);
});
});
var gotThanks = false;
web.listen(common.PORT, function() {
console.log('Making request');
var req = http.request({
port: common.PORT,
method: 'GET',
path: '/',
headers: { 'content-length': buffer.length }
}, function(res) {
console.log('Got response');
res.setEncoding('utf8');
res.on('data', function(string) {
assert.equal('thanks', string);
gotThanks = true;
});
});
req.end(buffer);
});
process.on('exit', function() {
assert.equal(bufferSize, measuredSize);
assert.ok(gotThanks);
});