Fixed up eval(sha) tests to better check that the lua script ran properly.
This commit is contained in:
@@ -3175,15 +3175,20 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey
|
||||
}
|
||||
|
||||
public Object evalsha(byte[] sha1, List<byte[]> keys, List<byte[]> args) {
|
||||
int size = (keys == null ? 0 : keys.size()) + (args == null ? 0 : args.size());
|
||||
List<byte[]> keysArgs = new ArrayList<byte[]>(size);
|
||||
|
||||
if (keys != null) keysArgs.addAll(keys);
|
||||
if (args != null) keysArgs.addAll(args);
|
||||
int keyCount = keys == null ? 0 : keys.size();
|
||||
int argCount = args == null ? 0 : args.size();
|
||||
|
||||
client.setTimeoutInfinite();
|
||||
client.evalsha(sha1, keys != null ? keys.size() : 0, keysArgs.toArray(new byte[0][]));
|
||||
return client.getOne();
|
||||
byte[][] params = new byte[keyCount + argCount][];
|
||||
|
||||
for (int i = 0; i < keyCount; i++)
|
||||
params[i] = keys.get(i);
|
||||
|
||||
for (int i = 0; i < argCount; i++)
|
||||
params[keyCount + i] = args.get(i);
|
||||
|
||||
|
||||
return evalsha(sha1, keyCount, params);
|
||||
}
|
||||
|
||||
public Object evalsha(byte[] sha1, int keyCount, byte[]... params) {
|
||||
|
||||
@@ -137,16 +137,26 @@ public class ScriptingCommandsTest extends JedisCommandTestBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void scriptEvalReturnNullValues() {
|
||||
String script = "return {redis.call('hget',KEYS[1],ARGV[1]),redis.call('hget',KEYS[2],ARGV[2])}";
|
||||
jedis.eval(script, 2, "key1", "key2", "1", "1");
|
||||
}
|
||||
@Test
|
||||
public void scriptEvalReturnNullValues() {
|
||||
String script = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}";
|
||||
List<String> results = (List<String>) jedis.eval(script, 2, "key1", "key2", "1", "2");
|
||||
assertEquals(results.get(0), "key1");
|
||||
assertEquals(results.get(1), "key2");
|
||||
assertEquals(results.get(2), "1");
|
||||
assertEquals(results.get(3), "2");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void scriptEvalShaReturnNullValues() {
|
||||
String script = "return {redis.call('hget',KEYS[1],ARGV[1]),redis.call('hget',KEYS[2],ARGV[2])}";
|
||||
String sha = jedis.scriptLoad(script);
|
||||
jedis.evalsha(sha, 2, "key1", "key2", "1", "1");
|
||||
}
|
||||
@Test
|
||||
public void scriptEvalShaReturnNullValues() {
|
||||
String script = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}";
|
||||
String sha = jedis.scriptLoad(script);
|
||||
List<String> results = (List<String>) jedis.evalsha(sha, 2, "key1", "key2", "1", "2");
|
||||
assertEquals(results.get(0), "key1");
|
||||
assertEquals(results.get(1), "key2");
|
||||
assertEquals(results.get(2), "1");
|
||||
assertEquals(results.get(3), "2");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user