Fix global leaks
This commit is contained in:
parent
a0159b4b29
commit
92789b16e5
@ -853,7 +853,7 @@ Server.prototype._rejectPending = function() {
|
|||||||
// Accept and close the waiting clients one at a time.
|
// Accept and close the waiting clients one at a time.
|
||||||
// Single threaded programming ftw.
|
// Single threaded programming ftw.
|
||||||
while (true) {
|
while (true) {
|
||||||
peerInfo = accept(this.fd);
|
var peerInfo = accept(this.fd);
|
||||||
if (!peerInfo) return;
|
if (!peerInfo) return;
|
||||||
close(peerInfo.fd);
|
close(peerInfo.fd);
|
||||||
|
|
||||||
|
3
test/fixtures/print-chars-from-buffer.js
vendored
3
test/fixtures/print-chars-from-buffer.js
vendored
@ -1,10 +1,9 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');;
|
var assert = require('assert');;
|
||||||
Buffer = require('buffer').Buffer;
|
|
||||||
|
|
||||||
var n = parseInt(process.argv[2]);
|
var n = parseInt(process.argv[2]);
|
||||||
|
|
||||||
b = new Buffer(n);
|
var b = new Buffer(n);
|
||||||
for (var i = 0; i < n; i++) {
|
for (var i = 0; i < n; i++) {
|
||||||
b[i] = 100;
|
b[i] = 100;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
common = require('../common');
|
var common = require('../common');
|
||||||
assert = common.assert;
|
var assert = require('assert');
|
||||||
|
var util = require('util');
|
||||||
|
|
||||||
util = require('util');
|
|
||||||
console.log([
|
console.log([
|
||||||
'_______________________________________________50',
|
'_______________________________________________50',
|
||||||
'______________________________________________100',
|
'______________________________________________100',
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
common = require('../common');
|
var common = require('../common');
|
||||||
assert = common.assert;
|
var assert = require('assert');
|
||||||
|
|
||||||
console.log('hello world');
|
console.log('hello world');
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
// This test requires the program 'ab'
|
// This test requires the program 'ab'
|
||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');;
|
var assert = require('assert');;
|
||||||
http = require('http');
|
var http = require('http');
|
||||||
exec = require('child_process').exec;
|
var exec = require('child_process').exec;
|
||||||
|
|
||||||
body = 'hello world\n';
|
var body = 'hello world\n';
|
||||||
server = http.createServer(function(req, res) {
|
var server = http.createServer(function(req, res) {
|
||||||
res.writeHead(200, {
|
res.writeHead(200, {
|
||||||
'Content-Length': body.length,
|
'Content-Length': body.length,
|
||||||
'Content-Type': 'text/plain'
|
'Content-Type': 'text/plain'
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');;
|
var assert = require('assert');;
|
||||||
net = require('net');
|
var net = require('net');
|
||||||
|
|
||||||
// settings
|
// settings
|
||||||
var bytes = 1024 * 40;
|
var bytes = 1024 * 40;
|
||||||
var concurrency = 100;
|
var concurrency = 100;
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = common.assert;
|
var assert = common.assert;
|
||||||
var net = require('net');
|
var net = require('net');
|
||||||
|
|
||||||
var N = 200;
|
var N = 200;
|
||||||
var recv = '', chars_recved = 0;
|
var recv = '', chars_recved = 0;
|
||||||
|
|
||||||
server = net.createServer(function(connection) {
|
var server = net.createServer(function(connection) {
|
||||||
function write(j) {
|
function write(j) {
|
||||||
if (j >= N) {
|
if (j >= N) {
|
||||||
connection.end();
|
connection.end();
|
||||||
@ -17,8 +18,9 @@ server = net.createServer(function(connection) {
|
|||||||
}
|
}
|
||||||
write(0);
|
write(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
server.on('listening', function() {
|
server.on('listening', function() {
|
||||||
client = net.createConnection(common.PORT);
|
var client = net.createConnection(common.PORT);
|
||||||
client.setEncoding('ascii');
|
client.setEncoding('ascii');
|
||||||
client.addListener('data', function(d) {
|
client.addListener('data', function(d) {
|
||||||
common.print(d);
|
common.print(d);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');;
|
var assert = require('assert');;
|
||||||
net = require('net');
|
var net = require('net');
|
||||||
|
|
||||||
|
|
||||||
var tests_run = 0;
|
var tests_run = 0;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');;
|
var assert = require('assert');;
|
||||||
net = require('net');
|
var net = require('net');
|
||||||
|
|
||||||
var tests_run = 0;
|
var tests_run = 0;
|
||||||
|
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');;
|
var assert = require('assert');;
|
||||||
net = require('net');
|
var net = require('net');
|
||||||
N = 160 * 1024; // 30kb
|
|
||||||
|
|
||||||
|
var N = 160 * 1024; // 30kb
|
||||||
chars_recved = 0;
|
var chars_recved = 0;
|
||||||
npauses = 0;
|
var npauses = 0;
|
||||||
|
|
||||||
console.log('build big string');
|
console.log('build big string');
|
||||||
var body = '';
|
var body = '';
|
||||||
@ -15,15 +14,16 @@ for (var i = 0; i < N; i++) {
|
|||||||
|
|
||||||
console.log('start server on port ' + common.PORT);
|
console.log('start server on port ' + common.PORT);
|
||||||
|
|
||||||
server = net.createServer(function(connection) {
|
var server = net.createServer(function(connection) {
|
||||||
connection.addListener('connect', function() {
|
connection.addListener('connect', function() {
|
||||||
assert.equal(false, connection.write(body));
|
assert.equal(false, connection.write(body));
|
||||||
connection.end();
|
connection.end();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
server.listen(common.PORT, function() {
|
server.listen(common.PORT, function() {
|
||||||
var paused = false;
|
var paused = false;
|
||||||
client = net.createConnection(common.PORT);
|
var client = net.createConnection(common.PORT);
|
||||||
client.setEncoding('ascii');
|
client.setEncoding('ascii');
|
||||||
client.addListener('data', function(d) {
|
client.addListener('data', function(d) {
|
||||||
chars_recved += d.length;
|
chars_recved += d.length;
|
||||||
@ -33,7 +33,7 @@ server.listen(common.PORT, function() {
|
|||||||
npauses += 1;
|
npauses += 1;
|
||||||
paused = true;
|
paused = true;
|
||||||
console.log('pause');
|
console.log('pause');
|
||||||
x = chars_recved;
|
var x = chars_recved;
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
assert.equal(chars_recved, x);
|
assert.equal(chars_recved, x);
|
||||||
client.resume();
|
client.resume();
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');;
|
var assert = require('assert');;
|
||||||
net = require('net');
|
var net = require('net');
|
||||||
exchanges = 0;
|
|
||||||
starttime = null;
|
var exchanges = 0;
|
||||||
timeouttime = null;
|
var starttime = null;
|
||||||
timeout = 1000;
|
var timeouttime = null;
|
||||||
|
var timeout = 1000;
|
||||||
|
|
||||||
var echo_server = net.createServer(function(socket) {
|
var echo_server = net.createServer(function(socket) {
|
||||||
socket.setTimeout(timeout);
|
socket.setTimeout(timeout);
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
|
||||||
assert = require('assert');
|
|
||||||
|
|
||||||
var WINDOW = 200; // why is does this need to be so big?
|
var WINDOW = 200; // why is does this need to be so big?
|
||||||
|
|
||||||
var interval_count = 0;
|
var interval_count = 0;
|
||||||
@ -79,8 +77,8 @@ setInterval(function(param1, param2){
|
|||||||
}, 1000, 'param1', 'param2');
|
}, 1000, 'param1', 'param2');
|
||||||
|
|
||||||
// setInterval(cb, 0) should be called multiple times.
|
// setInterval(cb, 0) should be called multiple times.
|
||||||
count4 = 0;
|
var count4 = 0;
|
||||||
interval4 = setInterval(function() {
|
var interval4 = setInterval(function() {
|
||||||
if (++count4 > 10) clearInterval(interval4);
|
if (++count4 > 10) clearInterval(interval4);
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
@ -92,12 +90,12 @@ function t () {
|
|||||||
expectedTimeouts--;
|
expectedTimeouts--;
|
||||||
}
|
}
|
||||||
|
|
||||||
w = setTimeout(t, 200),
|
var w = setTimeout(t, 200);
|
||||||
x = setTimeout(t, 200),
|
var x = setTimeout(t, 200);
|
||||||
y = setTimeout(t, 200);
|
var y = setTimeout(t, 200);
|
||||||
|
|
||||||
clearTimeout(y),
|
clearTimeout(y);
|
||||||
z = setTimeout(t, 200);
|
var z = setTimeout(t, 200);
|
||||||
clearTimeout(y);
|
clearTimeout(y);
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ var common = require('../common');
|
|||||||
var assert = require('assert');;
|
var assert = require('assert');;
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
|
|
||||||
server = http.createServer(function (req, res) {
|
var server = http.createServer(function (req, res) {
|
||||||
intentionally_not_defined();
|
intentionally_not_defined();
|
||||||
res.writeHead(200, {"Content-Type": "text/plain"});
|
res.writeHead(200, {"Content-Type": "text/plain"});
|
||||||
res.write("Thank you, come again.");
|
res.write("Thank you, come again.");
|
||||||
@ -17,7 +17,7 @@ server.listen(common.PORT, function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
exception_count = 0;
|
var exception_count = 0;
|
||||||
|
|
||||||
process.addListener("uncaughtException", function (err) {
|
process.addListener("uncaughtException", function (err) {
|
||||||
console.log("Caught an exception: " + err);
|
console.log("Caught an exception: " + err);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
var common = require("../common");
|
var common = require("../common");
|
||||||
var assert = common.assert;
|
var assert = require('assert');
|
||||||
var http = require("http");
|
var http = require("http");
|
||||||
|
|
||||||
var outstanding_reqs = 0;
|
var outstanding_reqs = 0;
|
||||||
@ -31,12 +31,12 @@ server.listen(common.PORT);
|
|||||||
|
|
||||||
server.addListener("listening", function() {
|
server.addListener("listening", function() {
|
||||||
var client = http.createClient(common.PORT);
|
var client = http.createClient(common.PORT);
|
||||||
req = client.request("POST", "/world", {
|
var req = client.request("POST", "/world", {
|
||||||
"Expect": "100-continue",
|
"Expect": "100-continue",
|
||||||
});
|
});
|
||||||
common.debug("Client sending request...");
|
common.debug("Client sending request...");
|
||||||
outstanding_reqs++;
|
outstanding_reqs++;
|
||||||
body = "";
|
var body = "";
|
||||||
req.addListener('continue', function () {
|
req.addListener('continue', function () {
|
||||||
common.debug("Client got 100 Continue...");
|
common.debug("Client got 100 Continue...");
|
||||||
got_continue = true;
|
got_continue = true;
|
||||||
|
@ -1,20 +1,18 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
|
||||||
assert = require("assert");
|
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
var util = require('util');
|
var util = require('util');
|
||||||
|
|
||||||
body = "hello world\n";
|
var body = "hello world\n";
|
||||||
headers = {'connection':'keep-alive'}
|
var headers = {'connection':'keep-alive'}
|
||||||
|
|
||||||
server = http.createServer(function (req, res) {
|
var server = http.createServer(function (req, res) {
|
||||||
res.writeHead(200, {"Content-Length": body.length, "Connection":"close"});
|
res.writeHead(200, {"Content-Length": body.length, "Connection":"close"});
|
||||||
res.write(body);
|
res.write(body);
|
||||||
res.end();
|
res.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
connectCount = 0;
|
var connectCount = 0;
|
||||||
|
|
||||||
server.listen(common.PORT, function () {
|
server.listen(common.PORT, function () {
|
||||||
var client = http.createClient(common.PORT);
|
var client = http.createClient(common.PORT);
|
||||||
|
@ -1,20 +1,18 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
|
||||||
assert = require("assert");
|
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
var util = require('util');
|
var util = require('util');
|
||||||
|
|
||||||
body = "hello world\n";
|
var body = "hello world\n";
|
||||||
headers = {'connection':'keep-alive'}
|
var headers = {'connection':'keep-alive'}
|
||||||
|
|
||||||
server = http.createServer(function (req, res) {
|
var server = http.createServer(function (req, res) {
|
||||||
res.writeHead(200, {"Content-Length": body.length});
|
res.writeHead(200, {"Content-Length": body.length});
|
||||||
res.write(body);
|
res.write(body);
|
||||||
res.end();
|
res.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
connectCount = 0;
|
var connectCount = 0;
|
||||||
|
|
||||||
server.listen(common.PORT, function () {
|
server.listen(common.PORT, function () {
|
||||||
var client = http.createClient(common.PORT);
|
var client = http.createClient(common.PORT);
|
||||||
|
@ -2,8 +2,8 @@ var common = require('../common');
|
|||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var net = require('net');
|
var net = require('net');
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
url = require("url");
|
var url = require("url");
|
||||||
qs = require("querystring");
|
var qs = require("querystring");
|
||||||
|
|
||||||
var request_number = 0;
|
var request_number = 0;
|
||||||
var requests_sent = 0;
|
var requests_sent = 0;
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
var net = require('net');
|
var net = require('net');
|
||||||
|
|
||||||
server = http.createServer(function (req, res) {
|
var server = http.createServer(function (req, res) {
|
||||||
common.error('got req');
|
common.error('got req');
|
||||||
throw new Error("This shouldn't happen.");
|
throw new Error("This shouldn't happen.");
|
||||||
});
|
});
|
||||||
@ -16,7 +15,7 @@ server.addListener('upgrade', function (req, socket, upgradeHead) {
|
|||||||
throw new Error('upgrade error');
|
throw new Error('upgrade error');
|
||||||
});
|
});
|
||||||
|
|
||||||
gotError = false;
|
var gotError = false;
|
||||||
|
|
||||||
process.addListener('uncaughtException', function (e) {
|
process.addListener('uncaughtException', function (e) {
|
||||||
common.error('got "clientError" event');
|
common.error('got "clientError" event');
|
||||||
|
@ -2,9 +2,8 @@ var common = require('../common');
|
|||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
assert = require('assert');
|
|
||||||
|
|
||||||
server = http.createServer(function (request, response) {
|
var server = http.createServer(function (request, response) {
|
||||||
console.log('responding to ' + request.url);
|
console.log('responding to ' + request.url);
|
||||||
|
|
||||||
response.writeHead(200, {'Content-Type': 'text/plain'});
|
response.writeHead(200, {'Content-Type': 'text/plain'});
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
url = require("url");
|
var url = require("url");
|
||||||
|
|
||||||
function p (x) {
|
function p (x) {
|
||||||
common.error(common.inspect(x));
|
common.error(common.inspect(x));
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
netBinding = process.binding('net');
|
var netBinding = process.binding('net');
|
||||||
|
|
||||||
// Create an server and set it listening on a socket bound to common.PORT
|
// Create an server and set it listening on a socket bound to common.PORT
|
||||||
var gotRequest = false;
|
var gotRequest = false;
|
||||||
|
@ -2,10 +2,10 @@ var common = require('../common');
|
|||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var net = require('net');
|
var net = require('net');
|
||||||
|
|
||||||
binaryString = "";
|
var binaryString = "";
|
||||||
for (var i = 255; i >= 0; i--) {
|
for (var i = 255; i >= 0; i--) {
|
||||||
var s = "'\\" + i.toString(8) + "'";
|
var s = "'\\" + i.toString(8) + "'";
|
||||||
S = eval(s);
|
var S = eval(s);
|
||||||
common.error( s
|
common.error( s
|
||||||
+ " "
|
+ " "
|
||||||
+ JSON.stringify(S)
|
+ JSON.stringify(S)
|
||||||
|
@ -8,12 +8,12 @@ var net = require('net');
|
|||||||
// TODO: test that the server can accept more connections after it reaches
|
// TODO: test that the server can accept more connections after it reaches
|
||||||
// its maximum and some are closed.
|
// its maximum and some are closed.
|
||||||
|
|
||||||
N = 200;
|
var N = 200;
|
||||||
count = 0;
|
var count = 0;
|
||||||
closes = 0;
|
var closes = 0;
|
||||||
waits = [];
|
var waits = [];
|
||||||
|
|
||||||
server = net.createServer(function (connection) {
|
var server = net.createServer(function (connection) {
|
||||||
console.error("connect %d", count++);
|
console.error("connect %d", count++);
|
||||||
connection.write("hello");
|
connection.write("hello");
|
||||||
waits.push(function () { connection.end(); });
|
waits.push(function () { connection.end(); });
|
||||||
|
@ -1,19 +1,18 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
var exec = require('child_process').exec;
|
||||||
|
var join = require('path').join;
|
||||||
|
|
||||||
exec = require('child_process').exec;
|
var nodePath = process.argv[0];
|
||||||
join = require('path').join;
|
var script = join(common.fixturesDir, 'print-10-lines.js');
|
||||||
|
|
||||||
nodePath = process.argv[0];
|
var cmd = nodePath + ' ' + script + ' | head -2';
|
||||||
script = join(common.fixturesDir, 'print-10-lines.js');
|
|
||||||
|
|
||||||
cmd = nodePath + ' ' + script + ' | head -2';
|
var finished = false;
|
||||||
|
|
||||||
finished = false;
|
|
||||||
|
|
||||||
exec(cmd, function (err, stdout, stderr) {
|
exec(cmd, function (err, stdout, stderr) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
lines = stdout.split('\n');
|
var lines = stdout.split('\n');
|
||||||
assert.equal(3, lines.length);
|
assert.equal(3, lines.length);
|
||||||
finished = true;
|
finished = true;
|
||||||
});
|
});
|
||||||
|
@ -4,12 +4,12 @@ var net = require('net');
|
|||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var util = require('util');
|
var util = require('util');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
fn = path.join(common.fixturesDir, 'does_not_exist.txt');
|
var fn = path.join(common.fixturesDir, 'does_not_exist.txt');
|
||||||
|
|
||||||
var got_error = false;
|
var got_error = false;
|
||||||
var conn_closed = false;
|
var conn_closed = false;
|
||||||
|
|
||||||
server = net.createServer(function (stream) {
|
var server = net.createServer(function (stream) {
|
||||||
common.error('pump!');
|
common.error('pump!');
|
||||||
util.pump(fs.createReadStream(fn), stream, function (err) {
|
util.pump(fs.createReadStream(fn), stream, function (err) {
|
||||||
common.error("util.pump's callback fired");
|
common.error("util.pump's callback fired");
|
||||||
@ -25,7 +25,7 @@ server = net.createServer(function (stream) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
server.listen(common.PORT, function () {
|
server.listen(common.PORT, function () {
|
||||||
conn = net.createConnection(common.PORT);
|
var conn = net.createConnection(common.PORT);
|
||||||
conn.setEncoding('utf8');
|
conn.setEncoding('utf8');
|
||||||
conn.addListener("data", function (chunk) {
|
conn.addListener("data", function (chunk) {
|
||||||
common.error('recv data! nchars = ' + chunk.length);
|
common.error('recv data! nchars = ' + chunk.length);
|
||||||
@ -43,7 +43,6 @@ server.listen(common.PORT, function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var buffer = '';
|
var buffer = '';
|
||||||
count = 0;
|
|
||||||
|
|
||||||
process.addListener('exit', function () {
|
process.addListener('exit', function () {
|
||||||
assert.equal(true, got_error);
|
assert.equal(true, got_error);
|
||||||
|
@ -4,11 +4,11 @@ var net = require('net');
|
|||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var util = require('util');
|
var util = require('util');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
fn = path.join(common.fixturesDir, 'elipses.txt');
|
var fn = path.join(common.fixturesDir, 'elipses.txt');
|
||||||
|
|
||||||
expected = fs.readFileSync(fn, 'utf8');
|
var expected = fs.readFileSync(fn, 'utf8');
|
||||||
|
|
||||||
server = net.createServer(function (stream) {
|
var server = net.createServer(function (stream) {
|
||||||
common.error('pump!');
|
common.error('pump!');
|
||||||
util.pump(fs.createReadStream(fn), stream, function () {
|
util.pump(fs.createReadStream(fn), stream, function () {
|
||||||
common.error('server stream close');
|
common.error('server stream close');
|
||||||
@ -18,7 +18,7 @@ server = net.createServer(function (stream) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
server.listen(common.PORT, function () {
|
server.listen(common.PORT, function () {
|
||||||
conn = net.createConnection(common.PORT);
|
var conn = net.createConnection(common.PORT);
|
||||||
conn.setEncoding('utf8');
|
conn.setEncoding('utf8');
|
||||||
conn.addListener("data", function (chunk) {
|
conn.addListener("data", function (chunk) {
|
||||||
common.error('recv data! nchars = ' + chunk.length);
|
common.error('recv data! nchars = ' + chunk.length);
|
||||||
@ -34,7 +34,7 @@ server.listen(common.PORT, function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var buffer = '';
|
var buffer = '';
|
||||||
count = 0;
|
var count = 0;
|
||||||
|
|
||||||
server.addListener('listening', function () {
|
server.addListener('listening', function () {
|
||||||
});
|
});
|
||||||
|
@ -19,7 +19,7 @@ process.addListener('SIGUSR1', function () {
|
|||||||
}, 5);
|
}, 5);
|
||||||
});
|
});
|
||||||
|
|
||||||
i = 0;
|
var i = 0;
|
||||||
setInterval(function () {
|
setInterval(function () {
|
||||||
console.log("running process..." + ++i);
|
console.log("running process..." + ++i);
|
||||||
|
|
||||||
|
@ -1,17 +1,16 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
var join = require('path').join;
|
||||||
join = require('path').join;
|
var childProccess = require('child_process');
|
||||||
childProccess = require('child_process');
|
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
stdoutScript = join(common.fixturesDir, 'echo.js');
|
var stdoutScript = join(common.fixturesDir, 'echo.js');
|
||||||
tmpFile = join(common.fixturesDir, 'stdin.txt');
|
var tmpFile = join(common.fixturesDir, 'stdin.txt');
|
||||||
|
|
||||||
cmd = process.argv[0] + ' ' + stdoutScript + ' < ' + tmpFile;
|
var cmd = process.argv[0] + ' ' + stdoutScript + ' < ' + tmpFile;
|
||||||
|
|
||||||
string = "abc\nümlaut.\nsomething else\n"
|
var string = "abc\nümlaut.\nsomething else\n" +
|
||||||
+ "南越国是前203年至前111年存在于岭南地区的一个国家,国都位于番禺,疆域包括今天中国的广东、广西两省区的大部份地区,福建省、湖南、贵州、云南的一小部份地区和越南的北部。南越国是秦朝灭亡后,由南海郡尉赵佗于前203年起兵兼并桂林郡和象郡后建立。前196年和前179年,南越国曾先后两次名义上臣属于西汉,成为西汉的“外臣”。前112年,南越国末代君主赵建德与西汉发生战争,被汉武帝于前111年所灭。南越国共存在93年,历经五代君主。南越国是岭南地区的第一个有记载的政权国家,采用封建制和郡县制并存的制度,它的建立保证了秦末乱世岭南地区社会秩序的稳定,有效的改善了岭南地区落后的政治、##济现状。\n";
|
"南越国是前203年至前111年存在于岭南地区的一个国家,国都位于番禺,疆域包括今天中国的广东、广西两省区的大部份地区,福建省、湖南、贵州、云南的一小部份地区和越南的北部。南越国是秦朝灭亡后,由南海郡尉赵佗于前203年起兵兼并桂林郡和象郡后建立。前196年和前179年,南越国曾先后两次名义上臣属于西汉,成为西汉的“外臣”。前112年,南越国末代君主赵建德与西汉发生战争,被汉武帝于前111年所灭。南越国共存在93年,历经五代君主。南越国是岭南地区的第一个有记载的政权国家,采用封建制和郡县制并存的制度,它的建立保证了秦末乱世岭南地区社会秩序的稳定,有效的改善了岭南地区落后的政治、##济现状。\n";
|
||||||
|
|
||||||
|
|
||||||
console.log(cmd + "\n\n");
|
console.log(cmd + "\n\n");
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
childProccess = require('child_process');
|
var childProccess = require('child_process');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
scriptString = path.join(common.fixturesDir, 'print-chars.js');
|
|
||||||
scriptBuffer = path.join(common.fixturesDir, 'print-chars-from-buffer.js');
|
var scriptString = path.join(common.fixturesDir, 'print-chars.js');
|
||||||
tmpFile = path.join(common.fixturesDir, 'stdout.txt');
|
var scriptBuffer = path.join(common.fixturesDir, 'print-chars-from-buffer.js');
|
||||||
|
var tmpFile = path.join(common.fixturesDir, 'stdout.txt');
|
||||||
|
|
||||||
function test (size, useBuffer, cb) {
|
function test (size, useBuffer, cb) {
|
||||||
var cmd = process.argv[0]
|
var cmd = process.argv[0]
|
||||||
@ -39,7 +40,7 @@ function test (size, useBuffer, cb) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
finished = false;
|
var finished = false;
|
||||||
test(1024*1024, false, function () {
|
test(1024*1024, false, function () {
|
||||||
console.log("Done printing with string");
|
console.log("Done printing with string");
|
||||||
test(1024*1024, true, function () {
|
test(1024*1024, true, function () {
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
var common = require('../common');
|
var common = require('../common');
|
||||||
var assert = require('assert');;
|
var assert = require('assert');
|
||||||
|
var StringDecoder = require('string_decoder').StringDecoder;
|
||||||
Buffer = require('buffer').Buffer;
|
var decoder = new StringDecoder('utf8');
|
||||||
StringDecoder = require('string_decoder').StringDecoder;
|
|
||||||
decoder = new StringDecoder('utf8');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
buffer = new Buffer('$');
|
var buffer = new Buffer('$');
|
||||||
assert.deepEqual('$', decoder.write(buffer));
|
assert.deepEqual('$', decoder.write(buffer));
|
||||||
|
|
||||||
buffer = new Buffer('¢');
|
buffer = new Buffer('¢');
|
||||||
@ -20,7 +18,7 @@ assert.deepEqual('', decoder.write(buffer.slice(1, 2)));
|
|||||||
assert.deepEqual('€', decoder.write(buffer.slice(2, 3)));
|
assert.deepEqual('€', decoder.write(buffer.slice(2, 3)));
|
||||||
|
|
||||||
buffer = new Buffer([0xF0, 0xA4, 0xAD, 0xA2]);
|
buffer = new Buffer([0xF0, 0xA4, 0xAD, 0xA2]);
|
||||||
s = '';
|
var s = '';
|
||||||
s += decoder.write(buffer.slice(0, 1));
|
s += decoder.write(buffer.slice(0, 1));
|
||||||
s += decoder.write(buffer.slice(1, 2));
|
s += decoder.write(buffer.slice(1, 2));
|
||||||
s += decoder.write(buffer.slice(2, 3));
|
s += decoder.write(buffer.slice(2, 3));
|
||||||
@ -34,10 +32,10 @@ assert.ok(s.length > 0);
|
|||||||
// U+12E4 -> E1 8B A4
|
// U+12E4 -> E1 8B A4
|
||||||
// U+0030 -> 30
|
// U+0030 -> 30
|
||||||
// U+3045 -> E3 81 85
|
// U+3045 -> E3 81 85
|
||||||
expected = '\u02e4\u0064\u12e4\u0030\u3045';
|
var expected = '\u02e4\u0064\u12e4\u0030\u3045';
|
||||||
buffer = new Buffer([0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4,
|
var buffer = new Buffer([0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4,
|
||||||
0x30, 0xE3, 0x81, 0x85]);
|
0x30, 0xE3, 0x81, 0x85]);
|
||||||
charLengths = [0, 0, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5];
|
var charLengths = [0, 0, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5];
|
||||||
|
|
||||||
// Split the buffer into 3 segments
|
// Split the buffer into 3 segments
|
||||||
// |----|------|-------|
|
// |----|------|-------|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user