123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- start_server {tags {"introspection"}} {
- test {CLIENT LIST} {
- r client list
- } {*addr=*:* fd=* age=* idle=* flags=N db=9 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=* obl=0 oll=0 omem=0 events=r cmd=client*}
- test {MONITOR can log executed commands} {
- set rd [redis_deferring_client]
- $rd monitor
- assert_match {*OK*} [$rd read]
- r set foo bar
- r get foo
- list [$rd read] [$rd read]
- } {*"set" "foo"*"get" "foo"*}
- test {MONITOR can log commands issued by the scripting engine} {
- set rd [redis_deferring_client]
- $rd monitor
- $rd read ;# Discard the OK
- r eval {redis.call('set',KEYS[1],ARGV[1])} 1 foo bar
- assert_match {*eval*} [$rd read]
- assert_match {*lua*"set"*"foo"*"bar"*} [$rd read]
- }
- test {CLIENT GETNAME should return NIL if name is not assigned} {
- r client getname
- } {}
- test {CLIENT LIST shows empty fields for unassigned names} {
- r client list
- } {*name= *}
- test {CLIENT SETNAME does not accept spaces} {
- catch {r client setname "foo bar"} e
- set e
- } {ERR*}
- test {CLIENT SETNAME can assign a name to this connection} {
- assert_equal [r client setname myname] {OK}
- r client list
- } {*name=myname*}
- test {CLIENT SETNAME can change the name of an existing connection} {
- assert_equal [r client setname someothername] {OK}
- r client list
- } {*name=someothername*}
- test {After CLIENT SETNAME, connection can still be closed} {
- set rd [redis_deferring_client]
- $rd client setname foobar
- assert_equal [$rd read] "OK"
- assert_match {*foobar*} [r client list]
- $rd close
- # Now the client should no longer be listed
- wait_for_condition 50 100 {
- [string match {*foobar*} [r client list]] == 0
- } else {
- fail "Client still listed in CLIENT LIST after SETNAME."
- }
- }
- test {CONFIG sanity} {
- # Do CONFIG GET, CONFIG SET and then CONFIG GET again
- # Skip immutable configs, one with no get, and other complicated configs
- set skip_configs {
- rdbchecksum
- daemonize
- io-threads-do-reads
- tcp-backlog
- always-show-logo
- syslog-enabled
- cluster-enabled
- aclfile
- unixsocket
- pidfile
- syslog-ident
- appendfilename
- supervised
- syslog-facility
- databases
- port
- io-threads
- tls-port
- tls-prefer-server-ciphers
- tls-cert-file
- tls-key-file
- tls-dh-params-file
- tls-ca-cert-file
- tls-ca-cert-dir
- tls-protocols
- tls-ciphers
- tls-ciphersuites
- logfile
- unixsocketperm
- slaveof
- bind
- requirepass
- }
- set configs {}
- foreach {k v} [r config get *] {
- if {[lsearch $skip_configs $k] != -1} {
- continue
- }
- dict set configs $k $v
- # try to set the config to the same value it already has
- r config set $k $v
- }
- set newconfigs {}
- foreach {k v} [r config get *] {
- if {[lsearch $skip_configs $k] != -1} {
- continue
- }
- dict set newconfigs $k $v
- }
- dict for {k v} $configs {
- set vv [dict get $newconfigs $k]
- if {$v != $vv} {
- fail "config $k mismatch, expecting $v but got $vv"
- }
- }
- }
- }
|