test: Misc Windows unit test fixes

Fixes #5071, #5073.

* Normalize capitalization of drive letter
* Fix `exit()` typo in failure path
* Ignore symlink tests (Windows) if not elevated

The `test_relative_input_cwd()` test was failing on Windows when
`skipSymlinks` was `true`. So we won't run it if `skipSymlinks` is
`true`.

When it failed, the unhandled error caused Node to die before
having a chance to clean up, which resulted in two files missing
in subsequent unit tests:

 * `test/fixtures/nested-index/one/hello.js`
 * `test/fixtures/nested-index/one/index.js`

We should probably find a way to isolate this test from the other
test (`simple/test-module-loading`) that was failing when this test
poluted the disk state.
This commit is contained in:
Scott Blomquist 2013-03-18 10:48:13 -07:00
parent 14a8fb8bbe
commit a05f973f82
4 changed files with 13 additions and 4 deletions

View File

@ -176,6 +176,11 @@ if (isWindows) {
tail = result[3],
trailingSlash = /[\\\/]$/.test(tail);
// If device is a drive letter, we'll normalize to lower case.
if (device && device.charAt(1) === ':') {
device = device[0].toLowerCase() + device.substr(1);
}
// Normalize the tail path
tail = normalizeArray(tail.split(/[\\\/]+/).filter(function(p) {
return !!p;

View File

@ -267,6 +267,10 @@ function test_cyclic_link_overprotection(callback) {
function test_relative_input_cwd(callback) {
console.log('test_relative_input_cwd');
if (skipSymlinks) {
console.log('skipping symlink test (no privs)');
return runNextTest();
}
// we need to get the relative path to the tmp dir from cwd.
// When the test runner is running it, that will be .../node/test

View File

@ -73,7 +73,7 @@ var server = http.createServer(function(req, res) {
cat.on('exit', function(code) {
if (code !== 0) {
console.error('subprocess exited with code ' + code);
exit(1);
process.exit(1);
}
res.end();
});

View File

@ -25,11 +25,11 @@ var assert = require('assert');
var path = require('path');
assert.equal(path.join(__dirname, '../fixtures/a.js'),
require.resolve('../fixtures/a'));
path.normalize(require.resolve('../fixtures/a')));
assert.equal(path.join(fixturesDir, 'a.js'),
require.resolve(path.join(fixturesDir, 'a')));
path.normalize(require.resolve(path.join(fixturesDir, 'a'))));
assert.equal(path.join(fixturesDir, 'nested-index', 'one', 'index.js'),
require.resolve('../fixtures/nested-index/one'));
path.normalize(require.resolve('../fixtures/nested-index/one')));
assert.equal('path', require.resolve('path'));
console.log('ok');