From 40f85aa42ac2600b90bc99c517934a8e198313b2 Mon Sep 17 00:00:00 2001 From: migounette Date: Wed, 9 Jul 2014 10:39:08 +0200 Subject: [PATCH] Add IPv6 and IPv4 tests --- index.js | 8 +++++++- test.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index f4e0095c0e..3b16d08e32 100644 --- a/index.js +++ b/index.js @@ -1183,10 +1183,16 @@ RedisClient.prototype.eval = RedisClient.prototype.EVAL = function () { exports.createClient = function (port_arg, host_arg, options) { + var cnxFamily; + + if (options && options.family) { + cnxFamily = (options.family == 'IPv6' ? 6 : 4); + } + var cnxOptions = { 'port' : port_arg || default_port, 'host' : host_arg || default_host, - 'family' : options.family || 'IPv4' + 'family' : cnxFamily || '4' }; var redis_client, net_client; diff --git a/test.js b/test.js index ffbc54d1a8..13c039bdcb 100644 --- a/test.js +++ b/test.js @@ -115,6 +115,51 @@ next = function next(name) { // Tests are run in the order they are defined, so FLUSHDB should always be first. +tests.IPV4 = function () { + var ipv4Client = redis.createClient( PORT, "127.0.0.1", { "family" : "IPv4" } ); + + ipv4Client.once("ready", function start_tests() { + console.log("Connected to " + ipv4Client.host + ":" + ipv4Client.port + ", Redis server version " + ipv4Client.server_info.redis_version + "\n"); + console.log("Using reply parser " + ipv4Client.reply_parser.name); + + ipv4Client.quit(); + run_next_test(); + }); + + ipv4Client.on('end', function () { + + }); + + // Exit immediately on connection failure, which triggers "exit", below, which fails the test + ipv4Client.on("error", function (err) { + console.error("client: " + err.stack); + process.exit(); + }); +} + +tests.IPV6 = function () { + var ipv6Client = redis.createClient( PORT, "::1", { "family" : "IPv6" } ); + + ipv6Client.once("ready", function start_tests() { + console.log("Connected to " + ipv6Client.host + ":" + ipv6Client.port + ", Redis server version " + ipv6Client.server_info.redis_version + "\n"); + console.log("Using reply parser " + ipv6Client.reply_parser.name); + + ipv6Client.quit(); + run_next_test(); + }); + + ipv6Client.on('end', function () { + + }); + + // Exit immediately on connection failure, which triggers "exit", below, which fails the test + ipv6Client.on("error", function (err) { + console.error("client: " + err.stack); + process.exit(); + }); +} + + tests.FLUSHDB = function () { var name = "FLUSHDB"; client.select(test_db_num, require_string("OK", name));