From 20128fe779599e3c28879c3d90b445e90a8748cc Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 7 Mar 2016 23:37:30 +0100 Subject: [PATCH] Test windows fixes Replace win-spawn with cross-spawn --- package.json | 2 +- test/auth.spec.js | 7 ++----- test/conect.slave.spec.js | 8 +++----- test/helper.js | 18 ++++++------------ test/lib/redis-process.js | 8 +++----- test/rename.spec.js | 7 ++----- 6 files changed, 17 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index 48af96aac2..9e0a52b8bb 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "optional-dev-dependency": "^1.1.0", "tcp-port-used": "^0.1.2", "uuid": "^2.0.1", - "win-spawn": "^2.0.0" + "cross-spawn": "^2.1.5" }, "repository": { "type": "git", diff --git a/test/auth.spec.js b/test/auth.spec.js index 47fa0964a2..0e464ccb6c 100644 --- a/test/auth.spec.js +++ b/test/auth.spec.js @@ -5,13 +5,9 @@ var config = require('./lib/config'); var helper = require('./helper'); var redis = config.redis; -if (process.platform === 'win32') { - // TODO: Fix redis process spawn on windows - return; -} - describe('client authentication', function () { before(function (done) { + this.timeout(25000); helper.stopRedis(function () { helper.startRedis('./conf/password.conf', done); }); @@ -286,6 +282,7 @@ describe('client authentication', function () { after(function (done) { if (helper.redisProcess().spawnFailed()) return done(); + this.timeout(25000); helper.stopRedis(function () { helper.startRedis('./conf/redis.conf', done); }); diff --git a/test/conect.slave.spec.js b/test/conect.slave.spec.js index 5264a125e6..82f19ee064 100644 --- a/test/conect.slave.spec.js +++ b/test/conect.slave.spec.js @@ -8,16 +8,12 @@ var rp; var path = require('path'); var redis = config.redis; -if (process.platform === 'win32') { - // TODO: Fix redis process spawn on windows - return; -} - describe('master slave sync', function () { var master = null; var slave = null; before(function (done) { + this.timeout(25000); helper.stopRedis(function () { helper.startRedis('./conf/password.conf', done); }); @@ -40,6 +36,7 @@ describe('master slave sync', function () { it('sync process and no master should delay ready being emitted for slaves', function (done) { if (helper.redisProcess().spawnFailed()) this.skip(); + if (process.platform === 'win32') this.timeout(25000); var port = 6381; var firstInfo; @@ -85,6 +82,7 @@ describe('master slave sync', function () { after(function (done) { if (helper.redisProcess().spawnFailed()) return done(); + this.timeout(25000); var end = helper.callFuncAfter(done, 3); rp.stop(end); slave.end(true); diff --git a/test/helper.js b/test/helper.js index f28568b500..545724de29 100644 --- a/test/helper.js +++ b/test/helper.js @@ -15,19 +15,13 @@ function startRedis (conf, done, port) { }, path.resolve(__dirname, conf), port); } -// don't start redis every time we -// include this helper file! -if (!process.env.REDIS_TESTS_STARTED) { - process.env.REDIS_TESTS_STARTED = true; +before(function (done) { + startRedis('./conf/redis.conf', done); +}); - before(function (done) { - startRedis('./conf/redis.conf', done); - }); - - after(function (done) { - if (rp) rp.stop(done); - }); -} +after(function (done) { + if (rp) rp.stop(done); +}); module.exports = { redisProcess: function () { diff --git a/test/lib/redis-process.js b/test/lib/redis-process.js index e98f7fbffc..cc5b53b01f 100644 --- a/test/lib/redis-process.js +++ b/test/lib/redis-process.js @@ -4,15 +4,13 @@ var config = require('./config'); var fs = require('fs'); var path = require('path'); -var spawn = require('win-spawn'); +var spawn = require('cross-spawn'); var tcpPortUsed = require('tcp-port-used'); var bluebird = require('bluebird'); // wait for redis to be listening in // all three modes (ipv4, ipv6, socket). function waitForRedis (available, cb, port) { - if (process.platform === 'win32') return cb(); - var time = Date.now(); var running = false; var socket = '/tmp/redis.sock'; @@ -29,14 +27,14 @@ function waitForRedis (available, cb, port) { tcpPortUsed.check(port, '::1'), function (ipV4, ipV6) { if (ipV6 === available && ipV4 === available) { - if (fs.existsSync(socket) === available) { + if (fs.existsSync(socket) === available || process.platform === 'win32') { clearInterval(id); return cb(); } // The same message applies for can't stop but we ignore that case throw new Error('Port ' + port + ' is already in use. Tests can\'t start.\n'); } - if (Date.now() - time > 6000) { + if (Date.now() - time > 24000) { throw new Error('Redis could not start on port ' + (port || config.PORT) + '\n'); } running = false; diff --git a/test/rename.spec.js b/test/rename.spec.js index b98661e9f5..1848aee95a 100644 --- a/test/rename.spec.js +++ b/test/rename.spec.js @@ -5,13 +5,9 @@ var config = require('./lib/config'); var helper = require('./helper'); var redis = config.redis; -if (process.platform === 'win32') { - // TODO: Fix redis process spawn on windows - return; -} - describe('rename commands', function () { before(function (done) { + this.timeout(25000); helper.stopRedis(function () { helper.startRedis('./conf/rename.conf', done); }); @@ -140,6 +136,7 @@ describe('rename commands', function () { after(function (done) { if (helper.redisProcess().spawnFailed()) return done(); + this.timeout(25000); helper.stopRedis(function () { helper.startRedis('./conf/redis.conf', done); });