Enable linting for the test directory. A number of changes was made so all tests conform the current rules used by lib and src directories. The only exception for tests is that unreachable (dead) code is allowed. test-fs-non-number-arguments-throw had to be excluded from the changes because of a weird issue on Windows CI. PR-URL: https://github.com/nodejs/io.js/pull/1721 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
71 lines
1.7 KiB
JavaScript
71 lines
1.7 KiB
JavaScript
'use strict';
|
|
var common = require('../common');
|
|
var assert = require('assert');
|
|
var net = require('net');
|
|
|
|
var tests_run = 0;
|
|
|
|
function fdPassingTest(path, port) {
|
|
var greeting = 'howdy';
|
|
var message = 'beep toot';
|
|
var expectedData = ['[greeting] ' + greeting, '[echo] ' + message];
|
|
|
|
var receiverArgs = [common.fixturesDir + '/net-fd-passing-receiver.js',
|
|
path,
|
|
greeting];
|
|
var receiver = process.createChildProcess(process.ARGV[0], receiverArgs);
|
|
|
|
var initializeSender = function() {
|
|
var fdHighway = new net.Socket();
|
|
|
|
fdHighway.on('connect', function() {
|
|
var sender = net.createServer(function(socket) {
|
|
fdHighway.sendFD(socket);
|
|
socket.flush();
|
|
socket.forceClose(); // want to close() the fd, not shutdown()
|
|
});
|
|
|
|
sender.on('listening', function() {
|
|
var client = net.createConnection(port);
|
|
|
|
client.on('connect', function() {
|
|
client.write(message);
|
|
});
|
|
|
|
client.on('data', function(data) {
|
|
assert.equal(expectedData[0], data);
|
|
if (expectedData.length > 1) {
|
|
expectedData.shift();
|
|
}
|
|
else {
|
|
// time to shut down
|
|
fdHighway.close();
|
|
sender.close();
|
|
client.forceClose();
|
|
}
|
|
});
|
|
});
|
|
|
|
tests_run += 1;
|
|
sender.listen(port);
|
|
});
|
|
|
|
fdHighway.connect(path);
|
|
|
|
|
|
};
|
|
|
|
receiver.on('output', function(data) {
|
|
var initialized = false;
|
|
if ((! initialized) && (data == 'ready')) {
|
|
initializeSender();
|
|
initialized = true;
|
|
}
|
|
});
|
|
}
|
|
|
|
fdPassingTest('/tmp/passing-socket-test', 31075);
|
|
|
|
process.on('exit', function() {
|
|
assert.equal(1, tests_run);
|
|
});
|