X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/0d1650f8a9ee2df13a11685ff0eb739305b4fe1b..85b514d16574803ac5ed291aedcaf2d77cea8f48:/tests/unit/scripting.tcl diff --git a/tests/unit/scripting.tcl b/tests/unit/scripting.tcl index 22b553d0..d8a2e023 100644 --- a/tests/unit/scripting.tcl +++ b/tests/unit/scripting.tcl @@ -123,4 +123,43 @@ start_server {tags {"scripting"}} { } e set _ $e } {*execution time*} + + test {EVAL - Scripts can't run certain commands} { + set e {} + catch {r eval {return redis.call('spop','x')} 0} e + set e + } {*not allowed*} + + test {EVAL - Scripts can't run certain commands} { + set e {} + catch { + r eval "redis.call('randomkey'); return redis.call('set','x','ciao')" 0 + } e + set e + } {*not allowed after*} + +} + +start_server {tags {"scripting repl"}} { + start_server {} { + test {Before the slave connects we issue an EVAL command} { + r eval {return redis.call('incr','x')} 0 + } {1} + + test {Connect a slave to the main instance} { + r -1 slaveof [srv 0 host] [srv 0 port] + after 1000 + s -1 role + } {slave} + + test {Now use EVALSHA against the master} { + r evalsha ae3477e27be955de7e1bc9adfdca626b478d3cb2 0 + } {2} + + if {$::valgrind} {after 2000} else {after 100} + + test {If EVALSHA was replicated as EVAL the slave should be ok} { + r -1 get x + } {2} + } }