123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- set testmodule [file normalize tests/modules/commandfilter.so]
- start_server {tags {"modules"}} {
- r module load $testmodule log-key 0
- test {Command Filter handles redirected commands} {
- r set mykey @log
- r lrange log-key 0 -1
- } "{set mykey @log}"
- test {Command Filter can call RedisModule_CommandFilterArgDelete} {
- r rpush mylist elem1 @delme elem2
- r lrange mylist 0 -1
- } {elem1 elem2}
- test {Command Filter can call RedisModule_CommandFilterArgInsert} {
- r del mylist
- r rpush mylist elem1 @insertbefore elem2 @insertafter elem3
- r lrange mylist 0 -1
- } {elem1 --inserted-before-- @insertbefore elem2 @insertafter --inserted-after-- elem3}
- test {Command Filter can call RedisModule_CommandFilterArgReplace} {
- r del mylist
- r rpush mylist elem1 @replaceme elem2
- r lrange mylist 0 -1
- } {elem1 --replaced-- elem2}
- test {Command Filter applies on RM_Call() commands} {
- r del log-key
- r commandfilter.ping
- r lrange log-key 0 -1
- } "{ping @log}"
- test {Command Filter applies on Lua redis.call()} {
- r del log-key
- r eval "redis.call('ping', '@log')" 0
- r lrange log-key 0 -1
- } "{ping @log}"
- test {Command Filter applies on Lua redis.call() that calls a module} {
- r del log-key
- r eval "redis.call('commandfilter.ping')" 0
- r lrange log-key 0 -1
- } "{ping @log}"
- test {Command Filter is unregistered implicitly on module unload} {
- r del log-key
- r module unload commandfilter
- r set mykey @log
- r lrange log-key 0 -1
- } {}
- r module load $testmodule log-key 0
- test {Command Filter unregister works as expected} {
- # Validate reloading succeeded
- r del log-key
- r set mykey @log
- assert_equal "{set mykey @log}" [r lrange log-key 0 -1]
- # Unregister
- r commandfilter.unregister
- r del log-key
- r set mykey @log
- r lrange log-key 0 -1
- } {}
- r module unload commandfilter
- r module load $testmodule log-key 1
- test {Command Filter REDISMODULE_CMDFILTER_NOSELF works as expected} {
- r set mykey @log
- assert_equal "{set mykey @log}" [r lrange log-key 0 -1]
- r del log-key
- r commandfilter.ping
- assert_equal {} [r lrange log-key 0 -1]
- r eval "redis.call('commandfilter.ping')" 0
- assert_equal {} [r lrange log-key 0 -1]
- }
- }
|