Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Change the way we test sentinel commands so it is automatic

  • Loading branch information...
commit 23e50a363e621ef9b5996233c53445e9f8ed3e13 1 parent 846397d
@xetorthio authored
View
16 Makefile
@@ -12,15 +12,31 @@ requirepass foobared
pidfile /tmp/redis2.pid
endef
+
+define REDIS_SENTINEL1
+port 26379
+daemonize yes
+sentinel monitor mymaster 127.0.0.1 6379 2
+sentinel auth-pass mymaster foobared
+sentinel down-after-milliseconds mymaster 5000
+sentinel failover-timeout mymaster 900000
+sentinel can-failover mymaster yes
+sentinel parallel-syncs mymaster 1
+pidfile /tmp/sentinel1.pid
+endef
+
export REDIS1_CONF
export REDIS2_CONF
+export REDIS_SENTINEL1
test:
echo "$$REDIS1_CONF" | redis-server -
echo "$$REDIS2_CONF" | redis-server -
+ echo "$$REDIS_SENTINEL1" | redis-sentinel -
mvn clean compile test
kill `cat /tmp/redis1.pid`
kill `cat /tmp/redis2.pid`
+ kill `cat /tmp/sentinel1.pid`
.PHONY: test
View
31 src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java
@@ -1,22 +1,40 @@
package redis.clients.jedis.tests;
-import static junit.framework.Assert.*;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
import java.util.List;
import java.util.Map;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class JedisSentinelTest {
-
private static final String MASTER_NAME = "mymaster";
- /**
- * Based on redis/master/slave/sentinel configs from
- * https://github.com/noise/redis-sentinel-tests.
- */
+ @Before
+ public void setup() throws InterruptedException {
+ Jedis j = new Jedis("localhost", 6380);
+ j.auth("foobared");
+ j.configSet("masterauth", "foobared");
+ j.slaveof("localhost", 6379);
+ // TODO: The sleep is to give time to the slave to synchronize with the
+ // master and also let know the sentinels about this new topology. We
+ // should find a better way to do this.
+ Thread.sleep(5000);
+ }
+
+ @After
+ public void clear() {
+ Jedis j = new Jedis("localhost", 6380);
+ j.auth("foobared");
+ j.slaveofNoOne();
+ }
+
@Test
public void sentinel() {
Jedis j = new Jedis("localhost", 26379);
@@ -45,5 +63,6 @@ public void sentinel() {
// DO NOT RE-RUN TEST TOO FAST, RESET TAKES SOME TIME TO... RESET
assertEquals(Long.valueOf(1), j.sentinelReset(masterName));
assertEquals(Long.valueOf(0), j.sentinelReset("woof" + masterName));
+
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.