diff --git a/pom.xml b/pom.xml index cfa7ade..bc5d8ff 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,11 @@ compile + + + localhost:6379,localhost:6380 + + @@ -23,6 +28,16 @@ 1.6 + + org.apache.maven.plugins + maven-surefire-plugin + 2.6 + + + ${redis-hosts} + + + diff --git a/src/test/java/redis/clients/jedis/tests/HostAndPortUtil.java b/src/test/java/redis/clients/jedis/tests/HostAndPortUtil.java new file mode 100644 index 0000000..a0098dd --- /dev/null +++ b/src/test/java/redis/clients/jedis/tests/HostAndPortUtil.java @@ -0,0 +1,58 @@ +package redis.clients.jedis.tests; + +import java.util.ArrayList; +import java.util.List; + +import redis.clients.jedis.Protocol; + +public class HostAndPortUtil { + private static List hostAndPortList = new ArrayList(2); + + static { + final HostAndPort defaulthnp1 = new HostAndPort(); + defaulthnp1.host = "localhost"; + defaulthnp1.port = Protocol.DEFAULT_PORT; + hostAndPortList.add(defaulthnp1); + + final HostAndPort defaulthnp2 = new HostAndPort(); + defaulthnp2.host = "localhost"; + defaulthnp2.port = Protocol.DEFAULT_PORT + 1; + hostAndPortList.add(defaulthnp2); + + + final String envHosts = System.getProperty("redis-hosts"); + if (null != envHosts && 0 < envHosts.length()) { + final String[] hostDefs = envHosts.split(","); + if (null != hostDefs && 2 <= hostDefs.length) { + hostAndPortList = new ArrayList(hostDefs.length); + for(String hostDef : hostDefs) { + final String[] hostAndPort = hostDef.split(":"); + if (null != hostAndPort && 2 == hostAndPort.length) { + final HostAndPort hnp = new HostAndPort(); + hnp.host = hostAndPort[0]; + try { + hnp.port = Integer.parseInt(hostAndPort[1]); + } catch(final NumberFormatException nfe){ + hnp.port = Protocol.DEFAULT_PORT; + } + hostAndPortList.add(hnp); + } + } + } + } + final StringBuilder strb = new StringBuilder("Redis hosts to be used : "); + for(HostAndPort hnp : hostAndPortList){ + strb.append('[').append(hnp.host).append(':').append(hnp.port).append(']').append(' '); + } + System.out.println(strb); + } + + public static List getRedisServers() { + return hostAndPortList; + } + + public static class HostAndPort { + public String host; + public int port; + } +} diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index 89c15c9..b7eb7f8 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -8,83 +8,88 @@ import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; -import redis.clients.jedis.Protocol; +import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public class JedisPoolTest extends Assert { - @Test - public void checkConnections() throws TimeoutException { - JedisPool pool = new JedisPool("localhost", Protocol.DEFAULT_PORT, - 2000, "foobared"); - pool.setResourcesNumber(10); - pool.init(); + private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); + + @Test + public void checkConnections() throws TimeoutException { + JedisPool pool = new JedisPool(hnp.host, hnp.port, 2000); + pool.setResourcesNumber(10); + pool.init(); - Jedis jedis = pool.getResource(200); - jedis.set("foo", "bar"); - assertEquals("bar", jedis.get("foo")); - pool.returnResource(jedis); - pool.destroy(); - } + Jedis jedis = pool.getResource(200); + jedis.auth("foobared"); + jedis.set("foo", "bar"); + assertEquals("bar", jedis.get("foo")); + pool.returnResource(jedis); + pool.destroy(); + } - @Test - public void checkConnectionWithDefaultPort() throws TimeoutException { - JedisPool pool = new JedisPool("localhost", Protocol.DEFAULT_PORT, - 2000, "foobared"); - pool.setResourcesNumber(10); - pool.init(); + @Test + public void checkConnectionWithDefaultPort() throws TimeoutException { + JedisPool pool = new JedisPool(hnp.host, hnp.port); + pool.setResourcesNumber(10); + pool.init(); - Jedis jedis = pool.getResource(200); - jedis.set("foo", "bar"); - assertEquals("bar", jedis.get("foo")); - pool.returnResource(jedis); - pool.destroy(); - } + Jedis jedis = pool.getResource(200); + jedis.auth("foobared"); + jedis.set("foo", "bar"); + assertEquals("bar", jedis.get("foo")); + pool.returnResource(jedis); + pool.destroy(); + } - @Test - public void checkJedisIsReusedWhenReturned() throws TimeoutException { - JedisPool pool = new JedisPool("localhost", Protocol.DEFAULT_PORT, - 2000, "foobared"); - pool.setResourcesNumber(1); - pool.init(); + @Test + public void checkJedisIsReusedWhenReturned() throws TimeoutException { + JedisPool pool = new JedisPool(hnp.host, hnp.port); + pool.setResourcesNumber(1); + pool.init(); - Jedis jedis = pool.getResource(200); - jedis.set("foo", "0"); - pool.returnResource(jedis); + Jedis jedis = pool.getResource(200); + jedis.auth("foobared"); + jedis.set("foo", "0"); + pool.returnResource(jedis); - jedis = pool.getResource(200); - jedis.incr("foo"); - pool.returnResource(jedis); - pool.destroy(); - } + jedis = pool.getResource(200); + jedis.auth("foobared"); + jedis.incr("foo"); + pool.returnResource(jedis); + pool.destroy(); + } - @Test - public void checkPoolRepairedWhenJedisIsBroken() throws TimeoutException, - IOException { - JedisPool pool = new JedisPool("localhost", Protocol.DEFAULT_PORT, - 2000, "foobared"); - pool.setResourcesNumber(1); - pool.init(); + @Test + public void checkPoolRepairedWhenJedisIsBroken() throws TimeoutException, + IOException { + JedisPool pool = new JedisPool(hnp.host, hnp.port); + pool.setResourcesNumber(1); + pool.init(); - Jedis jedis = pool.getResource(200); - jedis.quit(); - pool.returnBrokenResource(jedis); + Jedis jedis = pool.getResource(200); + jedis.auth("foobared"); + jedis.quit(); + pool.returnBrokenResource(jedis); - jedis = pool.getResource(200); - jedis.incr("foo"); - pool.returnResource(jedis); - pool.destroy(); - } + jedis = pool.getResource(200); + jedis.auth("foobared"); + jedis.incr("foo"); + pool.returnResource(jedis); + pool.destroy(); + } - @Test(expected = TimeoutException.class) - public void checkPoolOverflow() throws TimeoutException { - JedisPool pool = new JedisPool("localhost", Protocol.DEFAULT_PORT, - 2000, "foobared"); - pool.setResourcesNumber(1); - pool.init(); + @Test(expected = TimeoutException.class) + public void checkPoolOverflow() throws TimeoutException { + JedisPool pool = new JedisPool(hnp.host, hnp.port); + pool.setResourcesNumber(1); + pool.init(); - Jedis jedis = pool.getResource(200); - jedis.set("foo", "0"); + Jedis jedis = pool.getResource(200); + jedis.auth("foobared"); + jedis.set("foo", "0"); - Jedis newJedis = pool.getResource(200); - newJedis.incr("foo"); - } + Jedis newJedis = pool.getResource(200); + newJedis.auth("foobared"); + newJedis.incr("foo"); + } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java index 8816555..68280be 100644 --- a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java +++ b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java @@ -6,19 +6,29 @@ import java.util.List; import junit.framework.Assert; +import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPipeline; +import redis.clients.jedis.Protocol; +import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public class PipeliningTest extends Assert { + private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); + + private Jedis jedis; + + @Before + public void setUp() throws Exception { + jedis = new Jedis(hnp.host, hnp.port, 500); + jedis.connect(); + jedis.auth("foobared"); + jedis.flushAll(); + } + @Test public void pipeline() throws UnknownHostException, IOException { - Jedis jedis = new Jedis("localhost"); - jedis.connect(); - jedis.auth("foobared"); - jedis.flushAll(); - List results = jedis.pipelined(new JedisPipeline() { public void execute() { client.set("foo", "bar"); diff --git a/src/test/java/redis/clients/jedis/tests/ProtocolTest.java b/src/test/java/redis/clients/jedis/tests/ProtocolTest.java index a5747e0..584a3f4 100644 --- a/src/test/java/redis/clients/jedis/tests/ProtocolTest.java +++ b/src/test/java/redis/clients/jedis/tests/ProtocolTest.java @@ -54,7 +54,6 @@ public class ProtocolTest extends Assert { Protocol protocol = new Protocol(); String response = (String) protocol.read(new RedisInputStream(fis)); assertEquals("012345678901234567890123456789", response); -// assertEquals(3, fis.getReadMethodCallCount()); } diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java index 530f0e2..0223833 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java @@ -8,17 +8,20 @@ import org.junit.Assert; import org.junit.Test; import redis.clients.jedis.Jedis; -import redis.clients.jedis.Protocol; import redis.clients.jedis.ShardedJedis; +import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; import redis.clients.util.Hashing; import redis.clients.util.ShardInfo; public class ShardedJedisTest extends Assert { + private static HostAndPort redis1 = HostAndPortUtil.getRedisServers().get(0); + private static HostAndPort redis2 = HostAndPortUtil.getRedisServers().get(1); + @Test public void checkSharding() throws IOException { List shards = new ArrayList(); - shards.add(new ShardInfo("localhost", Protocol.DEFAULT_PORT)); - shards.add(new ShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); + shards.add(new ShardInfo(redis1.host, redis1.port)); + shards.add(new ShardInfo(redis2.host, redis2.port)); ShardedJedis jedis = new ShardedJedis(shards); ShardInfo s1 = jedis.getShardInfo("a"); ShardInfo s2 = jedis.getShardInfo("b"); @@ -28,10 +31,10 @@ public class ShardedJedisTest extends Assert { @Test public void trySharding() throws IOException { List shards = new ArrayList(); - ShardInfo si = new ShardInfo("localhost", Protocol.DEFAULT_PORT); + ShardInfo si = new ShardInfo(redis1.host, redis1.port); si.setPassword("foobared"); shards.add(si); - si = new ShardInfo("localhost", Protocol.DEFAULT_PORT + 1); + si = new ShardInfo(redis2.host, redis2.port); si.setPassword("foobared"); shards.add(si); ShardedJedis jedis = new ShardedJedis(shards); @@ -55,10 +58,10 @@ public class ShardedJedisTest extends Assert { @Test public void tryShardingWithMurmure() throws IOException { List shards = new ArrayList(); - ShardInfo si = new ShardInfo("localhost", Protocol.DEFAULT_PORT); + ShardInfo si = new ShardInfo(redis1.host, redis1.port); si.setPassword("foobared"); shards.add(si); - si = new ShardInfo("localhost", Protocol.DEFAULT_PORT + 1); + si = new ShardInfo(redis2.host, redis2.port); si.setPassword("foobared"); shards.add(si); ShardedJedis jedis = new ShardedJedis(shards, Hashing.MURMURE_HASH); diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/GetSetBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/GetSetBenchmark.java index a6fbc58..8f944f4 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/GetSetBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/GetSetBenchmark.java @@ -5,13 +5,16 @@ import java.net.UnknownHostException; import java.util.Calendar; import redis.clients.jedis.Jedis; +import redis.clients.jedis.tests.HostAndPortUtil; +import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public class GetSetBenchmark { + private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); private static final int TOTAL_OPERATIONS = 100000; public static void main(String[] args) throws UnknownHostException, IOException { - Jedis jedis = new Jedis("localhost"); + Jedis jedis = new Jedis(hnp.host, hnp.port); jedis.connect(); jedis.auth("foobared"); jedis.flushAll(); diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/PipelinedGetSetBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/PipelinedGetSetBenchmark.java index 43208b9..a62a1c9 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/PipelinedGetSetBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/PipelinedGetSetBenchmark.java @@ -6,13 +6,16 @@ import java.util.Calendar; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPipeline; +import redis.clients.jedis.tests.HostAndPortUtil; +import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public class PipelinedGetSetBenchmark { + private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); private static final int TOTAL_OPERATIONS = 200000; public static void main(String[] args) throws UnknownHostException, IOException { - Jedis jedis = new Jedis("localhost"); + Jedis jedis = new Jedis(hnp.host, hnp.port); jedis.connect(); jedis.auth("foobared"); jedis.flushAll(); diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java index 6ebf416..1a892c8 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java @@ -9,14 +9,16 @@ import java.util.concurrent.atomic.AtomicInteger; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; -import redis.clients.jedis.Protocol; +import redis.clients.jedis.tests.HostAndPortUtil; +import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public class PoolBenchmark { + private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); private static final int TOTAL_OPERATIONS = 100000; public static void main(String[] args) throws UnknownHostException, IOException, TimeoutException, InterruptedException { - Jedis j = new Jedis("localhost"); + Jedis j = new Jedis(hnp.host, hnp.port); j.connect(); j.auth("foobared"); j.flushAll(); @@ -37,7 +39,7 @@ public class PoolBenchmark { Thread hj = new Thread(new Runnable() { @Override public void run() { - Jedis j = new Jedis("localhost"); + Jedis j = new Jedis(hnp.host, hnp.port); try { j.connect(); j.auth("foobared"); @@ -61,8 +63,8 @@ public class PoolBenchmark { } private static void withPool() throws InterruptedException { - final JedisPool pool = new JedisPool("localhost", - Protocol.DEFAULT_PORT, 2000, "foobared"); + final JedisPool pool = new JedisPool(hnp.host, hnp.port, + 2000, "foobared"); pool.setResourcesNumber(50); pool.setDefaultPoolWait(1000000); pool.init(); diff --git a/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java b/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java index 2973e53..f7150f3 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java +++ b/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java @@ -9,34 +9,36 @@ import org.junit.After; import org.junit.Before; import redis.clients.jedis.Jedis; -import redis.clients.jedis.Protocol; +import redis.clients.jedis.tests.HostAndPortUtil; +import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public abstract class JedisCommandTestBase extends Assert { + protected static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); - protected Jedis jedis; + protected Jedis jedis; - public JedisCommandTestBase() { - super(); - } + public JedisCommandTestBase() { + super(); + } - @Before - public void setUp() throws Exception { - jedis = new Jedis("localhost", Protocol.DEFAULT_PORT, 500); - jedis.connect(); - jedis.auth("foobared"); - jedis.flushAll(); - } + @Before + public void setUp() throws Exception { + jedis = new Jedis(hnp.host, hnp.port, 500); + jedis.connect(); + jedis.auth("foobared"); + jedis.flushAll(); + } - @After - public void tearDown() throws Exception { - jedis.disconnect(); - } + @After + public void tearDown() throws Exception { + jedis.disconnect(); + } - protected Jedis createJedis() throws UnknownHostException, IOException { - Jedis j = new Jedis("localhost"); - j.connect(); - j.auth("foobared"); - j.flushAll(); - return j; - } + protected Jedis createJedis() throws UnknownHostException, IOException { + Jedis j = new Jedis(hnp.host, hnp.port); + j.connect(); + j.auth("foobared"); + j.flushAll(); + return j; + } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java index 41f96db..ca43163 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java @@ -5,6 +5,7 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; +import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; @@ -13,6 +14,17 @@ import redis.clients.jedis.Transaction; import redis.clients.jedis.TransactionBlock; public class TransactionCommandsTest extends JedisCommandTestBase { + Jedis nj; + @Before + public void setUp() throws Exception { + super.setUp(); + + nj = new Jedis(hnp.host, hnp.port, 500); + nj.connect(); + nj.auth("foobared"); + nj.flushAll(); + } + @Test public void multi() { Transaction trans = jedis.multi(); @@ -62,7 +74,6 @@ public class TransactionCommandsTest extends JedisCommandTestBase { jedis.watch("mykey"); Transaction t = jedis.multi(); - Jedis nj = new Jedis("localhost"); nj.connect(); nj.auth("foobared"); nj.set("mykey", "bar"); @@ -83,7 +94,6 @@ public class TransactionCommandsTest extends JedisCommandTestBase { assertEquals("OK", status); Transaction t = jedis.multi(); - Jedis nj = new Jedis("localhost"); nj.connect(); nj.auth("foobared"); nj.set("mykey", "bar");