win,test: fix test-stdin-from-file

The test-stdin-from-from-file test runs a subprocess that verifies stdin
can be piped from a file.

The subprocess additionally attempts to verify that the file descriptor
for stdin never gets closed. It used to do this by creating a TCP server
and asserting that the associated file descriptor is greater than two.
However this strategy doesn't work on windows, because servers don't
have an associated file descriptor. With this patch an ordinary file is
opened instead of creating a server.

PR: https://github.com/iojs/io.js/pull/1067
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Nikolai Vavilov <vvnicholas@gmail.com>
This commit is contained in:
Bert Belder 2015-03-05 03:11:06 +01:00
parent 4d0329ebeb
commit abd3ecfbd1

View File

@ -1,6 +1,7 @@
var common = require('../common'); var common = require('../common');
var assert = require('assert'); var assert = require('assert');
var net = require('net'); var net = require('net');
var fs = require('fs');
process.stdout.write('hello world\r\n'); process.stdout.write('hello world\r\n');
@ -11,10 +12,8 @@ stdin.on('data', function(data) {
}); });
stdin.on('end', function() { stdin.on('end', function() {
// If stdin's fd will be closed - createServer may get it // If stdin's fd was closed, the next open() call would return 0.
var server = net.createServer(function() { var fd = fs.openSync(process.argv[1], 'r');
}).listen(common.PORT, function() { assert(fd > 2);
assert(typeof server._handle.fd !== 'number' || server._handle.fd > 2); fs.closeSync(fd);
server.close();
});
}); });