From 69420df464d08a8f2d9160a5299163c54a280131 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 7 May 2014 16:04:45 +0200 Subject: Scripting test: check that Lua can call commands rewirting argv. SPOP, tested in the new test, is among the commands rewritng the client->argv argument vector (it gets rewritten as SREM) for command replication purposes. Because of recent optimizations to client->argv caching in the context of the Lua internal Redis client, it is important to test for SPOP to be callable from Lua without bad effects to the other commands. --- tests/unit/scripting.tcl | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tests/unit/scripting.tcl b/tests/unit/scripting.tcl index ff3f00ab5..8916d2351 100644 --- a/tests/unit/scripting.tcl +++ b/tests/unit/scripting.tcl @@ -311,8 +311,21 @@ start_server {tags {"scripting"}} { r config set slave-read-only yes r slaveof 127.0.0.1 0 r debug loadaof - r get foo + set res [r get foo] + r slaveof no one + set res } {102} + + test {We can call scripts rewriting client->argv from Lua} { + r del myset + r sadd myset a b c + r mset a 1 b 2 c 3 d 4 + assert {[r spop myset] ne {}} + assert {[r spop myset] ne {}} + assert {[r spop myset] ne {}} + assert {[r mget a b c d] eq {1 2 3 4}} + assert {[r spop myset] eq {}} + } } # Start a new server since the last test in this stanza will kill the -- cgit v1.2.1