[ok]: 5 keys in, 5 keys out [ok]: ACL #5998 regression: memory leaks adding / removing subcommands [ok]: ACL CAT category - list all commands/subcommands that belong to category [ok]: ACL CAT with illegal arguments [ok]: ACL CAT without category - list all categories [ok]: ACL GENPASS command failed test [ok]: ACL GETUSER is able to translate back command permissions [ok]: ACL GETUSER provides correct results [ok]: ACL GETUSER provides reasonable results [ok]: ACL GETUSER returns the password hash instead of the actual password [ok]: ACL HELP should not have unexpected options [ok]: ACL LOAD disconnects affected subscriber [ok]: ACL LOAD disconnects clients of deleted users [ok]: ACL LOAD only disconnects affected clients [ok]: ACL LOG RESET is able to flush the entries in the log [ok]: ACL LOG aggregates similar errors together and assigns unique entry-id to new errors [ok]: ACL LOG can accept a numerical argument to show less entries [ok]: ACL LOG can distinguish the transaction context [ok]: ACL LOG can distinguish the transaction context [ok]: ACL LOG can log failed auth attempts [ok]: ACL LOG entries are limited to a maximum amount [ok]: ACL LOG entries are still present on update of max len config [ok]: ACL LOG is able to log channel access violations and channel name [ok]: ACL LOG is able to log keys access violations and key name [ok]: ACL LOG is able to test similar events [ok]: ACL LOG shows failed command executions at toplevel [ok]: ACL LOG shows failed subcommand executions at toplevel [ok]: ACL SETUSER RESET reverting to default newly created user [ok]: ACL can log errors in the context of Lua scripting [ok]: ACL from config file and config rewrite [ok]: ACL load and save [ok]: ACL load and save with restricted channels [ok]: ACL load non-existing configured ACL file [ok]: ACL load on replica when connected to replica [ok]: ACL requires explicit permission for scripting for EVAL_RO, EVALSHA_RO and FCALL_RO [ok]: ACL-Metrics invalid channels accesses [ok]: ACL-Metrics invalid command accesses [ok]: ACL-Metrics invalid key accesses [ok]: ACL-Metrics user AUTH failure [ok]: ACLLOG - zero max length is correctly handled [ok]: ACLs can block SELECT of all but a specific DB [ok]: ACLs can block all DEBUG subcommands except one [ok]: ACLs can exclude single commands [ok]: ACLs can exclude single subcommands, case 1 [ok]: ACLs can exclude single subcommands, case 2 [ok]: ACLs can include or exclude whole classes of commands [ok]: ACLs can include single subcommands [ok]: ACLs cannot exclude or include a container command with two args [ok]: ACLs cannot exclude or include a container commands with a specific arg [ok]: ACLs cannot include a subcommand with a specific arg [ok]: ACLs including of a type includes also subcommands [ok]: ACLs set can exclude subcommands, if already full command exists [ok]: ACLs set can include subcommands, if already full command exists [ok]: AUTH fails if there is no password configured server side [ok]: AUTH fails when a wrong password is given [ok]: AUTH fails when binary password is wrong [ok]: AUTH succeeds when binary password is correct [ok]: AUTH succeeds when the right password is given [ok]: After CLIENT SETNAME, connection can still be closed [ok]: After failed EXEC key is no longer watched [ok]: After successful EXEC key is no longer watched [ok]: Alice: can execute all command [ok]: All TTL in commands are propagated as absolute timestamp in replication stream [ok]: All time-to-live [ok]: Approximated cardinality after creation is zero [ok]: Arbitrary command gives an error when AUTH is required [ok]: Arity check for auth command [ok]: BITCOUNT against non-integer value [ok]: BITCOUNT against test vector #1 [ok]: BITCOUNT against test vector #2 [ok]: BITCOUNT against test vector #3 [ok]: BITCOUNT against test vector #4 [ok]: BITCOUNT against test vector #5 [ok]: BITCOUNT against wrong type [ok]: BITCOUNT fuzzing with start/end [ok]: BITCOUNT fuzzing without start/end [ok]: BITCOUNT misaligned prefix [ok]: BITCOUNT misaligned prefix + full words + remainder [ok]: BITCOUNT regression test for github issue #582 [ok]: BITCOUNT returns 0 against non existing key [ok]: BITCOUNT returns 0 with negative indexes where start > end [ok]: BITCOUNT returns 0 with out of range indexes [ok]: BITCOUNT with illegal arguments [ok]: BITCOUNT with start, end [ok]: BITFIELD # form [ok]: BITFIELD basic INCRBY form [ok]: BITFIELD chaining of multiple commands [ok]: BITFIELD command will not be marked with movablekeys [ok]: BITFIELD overflow detection fuzzing [ok]: BITFIELD overflow wrap fuzzing [ok]: BITFIELD regression for #3221 [ok]: BITFIELD regression for #3564 [ok]: BITFIELD signed SET and GET basics [ok]: BITFIELD signed SET and GET together [ok]: BITFIELD signed overflow sat [ok]: BITFIELD signed overflow wrap [ok]: BITFIELD unsigned SET and GET basics [ok]: BITFIELD unsigned overflow sat [ok]: BITFIELD unsigned overflow wrap [ok]: BITFIELD unsigned with SET, GET and INCRBY arguments [ok]: BITFIELD with only key as argument [ok]: BITFIELD: setup slave [ok]: BITFIELD: write on master, read on slave [ok]: BITFIELD_RO fails when write option is used [ok]: BITFIELD_RO fails when write option is used on read-only replica [ok]: BITFIELD_RO with only key as argument [ok]: BITFIELD_RO with only key as argument on read-only replica [ok]: BITOP AND|OR|XOR|ONE don't change the string with single input key [ok]: BITOP DIFF|DIFF1|ANDOR with one source key [ok]: BITOP NOT [ok]: BITOP NOT [ok]: BITOP NOT fuzzing [ok]: BITOP NOT with multiple source keys [ok]: BITOP and fuzzing [ok]: BITOP andor fuzzing [ok]: BITOP diff fuzzing [ok]: BITOP diff1 fuzzing [ok]: BITOP missing key is considered a stream of zero [ok]: BITOP one fuzzing [ok]: BITOP or fuzzing [ok]: BITOP shorter keys are zero-padded to the key with max length [ok]: BITOP where dest and target are the same key [ok]: BITOP with empty string after non empty string [ok]: BITOP with integer encoded source objects [ok]: BITOP with non string source key [ok]: BITOP xor fuzzing [ok]: BITPOS against non-integer value [ok]: BITPOS against wrong type [ok]: BITPOS bit=0 changes behavior if end is given [ok]: BITPOS bit=0 fuzzy testing using SETBIT [ok]: BITPOS bit=0 starting at unaligned address [ok]: BITPOS bit=0 unaligned+full word+reminder [ok]: BITPOS bit=0 with empty key returns 0 [ok]: BITPOS bit=0 with string less than 1 word works [ok]: BITPOS bit=0 works with intervals [ok]: BITPOS bit=1 fuzzy testing using SETBIT [ok]: BITPOS bit=1 returns -1 if string is all 0 bits [ok]: BITPOS bit=1 starting at unaligned address [ok]: BITPOS bit=1 unaligned+full word+reminder [ok]: BITPOS bit=1 with empty key returns -1 [ok]: BITPOS bit=1 with string less than 1 word works [ok]: BITPOS bit=1 works with intervals [ok]: BITPOS will illegal arguments [ok]: BITPOS/BITCOUNT fuzzy testing using SETBIT [ok]: BLPOP command will not be marked with movablekeys [ok]: Blocking commands ignores the timeout [ok]: Bob: just execute @set and acl command [ok]: By default users are not able to access any command [ok]: By default users are not able to access any key [ok]: By default, only default user is able to publish to any channel [ok]: By default, only default user is able to subscribe to any channel [ok]: By default, only default user is able to subscribe to any pattern [ok]: By default, only default user is able to subscribe to any shard channel [ok]: By default, only default user is not able to publish to any shard channel [ok]: CLIENT GETNAME check if name set correctly [ok]: CLIENT GETNAME should return NIL if name is not assigned [ok]: CLIENT INFO [ok]: CLIENT INFO cmds-processed stats for recursive command [ok]: CLIENT INFO input/output/cmds-processed stats [ok]: CLIENT INFO input/output/cmds-processed stats for blocking command [ok]: CLIENT KILL SKIPME YES/NO will kill all clients [ok]: CLIENT KILL close the client connection during bgsave [ok]: CLIENT KILL maxAGE will kill old clients [ok]: CLIENT KILL with illegal arguments [ok]: CLIENT LIST [ok]: CLIENT LIST shows empty fields for unassigned names [ok]: CLIENT LIST with IDs [ok]: CLIENT REPLY OFF/ON: disable all commands reply [ok]: CLIENT REPLY ON: unset SKIP flag [ok]: CLIENT REPLY SKIP: skip the next command reply [ok]: CLIENT SETINFO can clear library name [ok]: CLIENT SETINFO can set a library name to this connection [ok]: CLIENT SETINFO invalid args [ok]: CLIENT SETNAME can assign a name to this connection [ok]: CLIENT SETNAME can change the name of an existing connection [ok]: CLIENT SETNAME does not accept spaces [ok]: CLIENT command unhappy path coverage [ok]: COMMAND COUNT get total number of Redis commands [ok]: COMMAND GETKEYS EVAL with keys [ok]: COMMAND GETKEYS EVAL without keys [ok]: COMMAND GETKEYS GET [ok]: COMMAND GETKEYS LCS [ok]: COMMAND GETKEYS MEMORY USAGE [ok]: COMMAND GETKEYS MORE THAN 256 KEYS [ok]: COMMAND GETKEYS XGROUP [ok]: COMMAND GETKEYSANDFLAGS [ok]: COMMAND GETKEYSANDFLAGS MSETEX [ok]: COMMAND GETKEYSANDFLAGS invalid args [ok]: COMMAND INFO of invalid subcommands [ok]: COMMAND LIST FILTERBY ACLCAT - list all commands/subcommands [ok]: COMMAND LIST FILTERBY ACLCAT against non existing category [ok]: COMMAND LIST FILTERBY MODULE against non existing module [ok]: COMMAND LIST FILTERBY PATTERN - list all commands/subcommands [ok]: COMMAND LIST WITHOUT FILTERBY [ok]: COMMAND LIST syntax error [ok]: CONFIG GET hidden configs [ok]: CONFIG GET multiple args [ok]: CONFIG REWRITE handles save and shutdown properly [ok]: CONFIG REWRITE sanity [ok]: CONFIG SET bind address [ok]: CONFIG SET bind-source-addr [ok]: CONFIG SET client-output-buffer-limit [ok]: CONFIG SET duplicate configs [ok]: CONFIG SET port number [ok]: CONFIG SET rollback on apply error [ok]: CONFIG SET rollback on set error [ok]: CONFIG SET set immutable [ok]: CONFIG SET with multiple args [ok]: CONFIG sanity [ok]: CONFIG save params special case handled properly [ok]: COPY basic usage for hashtable hash [ok]: COPY basic usage for hashtable set [ok]: COPY basic usage for intset set [ok]: COPY basic usage for list - listpack [ok]: COPY basic usage for list - quicklist [ok]: COPY basic usage for listpack hash [ok]: COPY basic usage for listpack set [ok]: COPY basic usage for listpack sorted set [ok]: COPY basic usage for skiplist sorted set [ok]: COPY basic usage for stream [ok]: COPY basic usage for stream-cgroups [ok]: COPY basic usage for string [ok]: COPY can copy key expire metadata as well [ok]: COPY does not create an expire if it does not exist [ok]: COPY for string can replace an existing key with REPLACE option [ok]: COPY for string does not copy data to no-integer DB [ok]: COPY for string does not replace an existing key without REPLACE option [ok]: COPY for string ensures that copied data is independent of copying data [ok]: Cardinality commands require some type of permission to execute [ok]: Change hll-sparse-max-bytes [ok]: Check geoset values [ok]: Check if maxclients works refusing connections [ok]: Commands pipelining [ok]: Connect a replica to the master instance [ok]: Connections start with the default user [ok]: Corrupted sparse HyperLogLogs are detected: Additional at tail [ok]: Corrupted sparse HyperLogLogs are detected: Broken magic [ok]: Corrupted sparse HyperLogLogs are detected: Invalid encoding [ok]: Corrupted sparse HyperLogLogs doesn't cause overflow and out-of-bounds with XZERO opcode [ok]: Coverage: ACL USERS [ok]: Coverage: SWAPDB and FLUSHDB [ok]: Coverage: basic SWAPDB test and unhappy path [ok]: DBSIZE [ok]: DEL against a single item [ok]: DEL against expired key [ok]: DEL all keys [ok]: DEL all keys again [ok]: DEL all keys again [ok]: DISCARD [ok]: DISCARD should UNWATCH all the keys [ok]: DISCARD should clear the WATCH dirty flag on the client [ok]: DISCARD should not fail during OOM [ok]: DUMP / RESTORE are able to serialize / unserialize a simple key [ok]: DUMP of non existing key returns nil [ok]: Default bind address configuration handling [ok]: Default user can not be removed [ok]: Default user has access to all channels irrespective of flag [ok]: Delete WATCHed stale keys should not fail EXEC [ok]: Delete a user that the client doesn't use [ok]: Delete a user that the client is using [ok]: Disconnecting the replica from master instance [ok]: EVAL command is marked with movablekeys [ok]: EXEC and script timeout [ok]: EXEC fail on WATCHed key modified [ok]: EXEC fail on WATCHed key modified [ok]: EXEC fail on WATCHed key modified by SORT with STORE even if the result is empty [ok]: EXEC fail on lazy expired WATCHed key [ok]: EXEC fails if there are errors while queueing commands #1 [ok]: EXEC fails if there are errors while queueing commands #2 [ok]: EXEC with at least one use-memory command should fail [ok]: EXEC with only read commands should not be rejected when OOM [ok]: EXEC works on WATCHed key not modified [ok]: EXISTS [ok]: EXPIRE - After 2.1 seconds the key should no longer be here [ok]: EXPIRE - It should be still possible to read 'x' [ok]: EXPIRE - set timeouts multiple times [ok]: EXPIRE - write on expire should work [ok]: EXPIRE precision is now the millisecond [ok]: EXPIRE should not resurrect keys [ok]: EXPIRE with big integer overflows when converted to milliseconds [ok]: EXPIRE with big negative integer [ok]: EXPIRE with empty string as TTL should report an error [ok]: EXPIREAT - Check for EXPIRE alike behavior [ok]: EXPIRETIME returns absolute expiration time in seconds [ok]: Enabling the user allows the login [ok]: Existence test commands are not marked as access [ok]: FLUSHALL SYNC in MULTI not optimized to run as blocking FLUSHALL ASYNC [ok]: FLUSHALL SYNC optimized to run in bg as blocking FLUSHALL ASYNC [ok]: FLUSHALL does not touch non affected keys [ok]: FLUSHALL is able to touch the watched keys [ok]: FLUSHDB ASYNC can reclaim memory in background [ok]: FLUSHDB does not touch non affected keys [ok]: FLUSHDB is able to touch the watched keys [ok]: FLUSHDB while watching stale keys should not fail EXEC [ok]: FUNCTION - Basic usage [ok]: FUNCTION - Create a library with wrong name format [ok]: FUNCTION - Create an already exiting library raise error [ok]: FUNCTION - Create an already exiting library raise error [ok]: FUNCTION - Create library with unexisting engine [ok]: FUNCTION - Load with unknown argument [ok]: FUNCTION - Test uncompiled script [ok]: FUNCTION - allow stale [ok]: FUNCTION - async function flush rebuilds Lua VM without causing race condition between main and lazyfree thread [ok]: FUNCTION - call on replica [ok]: FUNCTION - create on read only replica [ok]: FUNCTION - creation is replicated to replica [ok]: FUNCTION - delete is replicated to replica [ok]: FUNCTION - delete on read only replica [ok]: FUNCTION - deny oom [ok]: FUNCTION - deny oom on no-writes function [ok]: FUNCTION - flush is replicated to replica [ok]: FUNCTION - function effect is replicated to replica [ok]: FUNCTION - function stats [ok]: FUNCTION - function stats cleaned after flush [ok]: FUNCTION - function stats delete library [ok]: FUNCTION - function stats reloaded correctly from rdb [ok]: FUNCTION - function test empty engine [ok]: FUNCTION - function test multiple names [ok]: FUNCTION - function test name with quotes [ok]: FUNCTION - function test no name [ok]: FUNCTION - function test unknown metadata value [ok]: FUNCTION - modify key space of read only replica [ok]: FUNCTION - redis version api [ok]: FUNCTION - restore is replicated to replica [ok]: FUNCTION - test command get keys on fcall [ok]: FUNCTION - test command get keys on fcall_ro [ok]: FUNCTION - test debug reload different options [ok]: FUNCTION - test debug reload with nosave and noflush [ok]: FUNCTION - test delete on not exiting library [ok]: FUNCTION - test fcall bad arguments [ok]: FUNCTION - test fcall bad number of keys arguments [ok]: FUNCTION - test fcall negative number of keys [ok]: FUNCTION - test fcall_ro with read only commands [ok]: FUNCTION - test fcall_ro with write command [ok]: FUNCTION - test flushall and flushdb do not clean functions [ok]: FUNCTION - test function case insensitive [ok]: FUNCTION - test function delete [ok]: FUNCTION - test function dump and restore [ok]: FUNCTION - test function dump and restore with append argument [ok]: FUNCTION - test function dump and restore with flush argument [ok]: FUNCTION - test function dump and restore with replace argument [ok]: FUNCTION - test function flush [ok]: FUNCTION - test function kill [ok]: FUNCTION - test function kill not working on eval [ok]: FUNCTION - test function kill when function is not running [ok]: FUNCTION - test function list libraryname multiple times [ok]: FUNCTION - test function list with CRLF injection attempt [ok]: FUNCTION - test function list with bad argument to library name [ok]: FUNCTION - test function list with code [ok]: FUNCTION - test function list with pattern [ok]: FUNCTION - test function list withcode multiple times [ok]: FUNCTION - test function list wrong argument [ok]: FUNCTION - test function restore with bad payload do not drop existing functions [ok]: FUNCTION - test function restore with function name collision [ok]: FUNCTION - test function restore with wrong number of arguments [ok]: FUNCTION - test function stats on loading failure [ok]: FUNCTION - test function wrong argument [ok]: FUNCTION - test getmetatable on script load [ok]: FUNCTION - test keys and argv [ok]: FUNCTION - test loading from rdb [ok]: FUNCTION - test replace argument [ok]: FUNCTION - test replace argument with failure keeps old libraries [ok]: FUNCTION - test replication to replica on rdb phase [ok]: FUNCTION - test replication to replica on rdb phase info command [ok]: FUNCTION - test script kill not working on function [ok]: FUNCTION - test wrong subcommand [ok]: FUNCTION - trick global protection 1 [ok]: FUNCTION - unknown flag [ok]: FUNCTION - verify OOM on function load and function restore [ok]: FUNCTION - verify allow-omm allows running any command [ok]: FUNCTION - write script on fcall_ro [ok]: FUNCTION - write script with no-writes flag [ok]: FUNCTION - wrong flag type [ok]: FUNCTION - wrong flags type named arguments [ok]: FUNCTION can processes create, delete and flush commands in AOF when doing "debug loadaof" in read-only slaves [ok]: First server should have role slave after SLAVEOF [ok]: For unauthenticated clients multibulk and bulk length are limited [ok]: For unauthenticated clients output buffer is limited [ok]: GEO BYLONLAT with empty search [ok]: GEO BYMEMBER with non existing member [ok]: GEO with non existing src key [ok]: GEO with wrong type src key [ok]: GEOADD create [ok]: GEOADD invalid coordinates [ok]: GEOADD multi add [ok]: GEOADD update [ok]: GEOADD update with CH NX option [ok]: GEOADD update with CH XX option [ok]: GEOADD update with CH option [ok]: GEOADD update with NX option [ok]: GEOADD update with XX NX option will return syntax error [ok]: GEOADD update with XX option [ok]: GEOADD update with invalid option [ok]: GEODIST missing elements [ok]: GEODIST simple & unit [ok]: GEOHASH is able to return geohash strings [ok]: GEOHASH with only key as argument [ok]: GEOPOS missing element [ok]: GEOPOS simple [ok]: GEOPOS with only key as argument [ok]: GEORADIUS HUGE, issue #2767 [ok]: GEORADIUS STORE option: syntax error [ok]: GEORADIUS command is marked with movablekeys [ok]: GEORADIUS simple [ok]: GEORADIUS with ANY but no COUNT [ok]: GEORADIUS with ANY not sorted by default [ok]: GEORADIUS with ANY sorted by ASC [ok]: GEORADIUS with COUNT [ok]: GEORADIUS with COUNT DESC [ok]: GEORADIUS with COUNT but missing integer argument [ok]: GEORADIUS with multiple WITH* tokens [ok]: GEORADIUS withdist [ok]: GEORADIUSBYMEMBER STORE/STOREDIST option: plain usage [ok]: GEORADIUSBYMEMBER crossing pole search [ok]: GEORADIUSBYMEMBER search areas contain satisfied points in oblique direction [ok]: GEORADIUSBYMEMBER simple [ok]: GEORADIUSBYMEMBER withdist [ok]: GEORADIUSBYMEMBER_RO simple [ok]: GEORADIUS_RO command will not be marked with movablekeys [ok]: GEORADIUS_RO simple [ok]: GEORANGE STORE option: incompatible options [ok]: GEORANGE STORE option: plain usage [ok]: GEORANGE STOREDIST option: COUNT ASC and DESC [ok]: GEORANGE STOREDIST option: plain usage [ok]: GEOSEARCH BYRADIUS and BYBOX cannot exist at the same time [ok]: GEOSEARCH BYRADIUS and BYBOX one must exist [ok]: GEOSEARCH FROMLONLAT and FROMMEMBER cannot exist at the same time [ok]: GEOSEARCH FROMLONLAT and FROMMEMBER one must exist [ok]: GEOSEARCH FROMMEMBER simple [ok]: GEOSEARCH corner point test [ok]: GEOSEARCH non square, long and narrow [ok]: GEOSEARCH simple [ok]: GEOSEARCH the box spans -180° or 180° [ok]: GEOSEARCH vs GEORADIUS [ok]: GEOSEARCH with STOREDIST option [ok]: GEOSEARCH with small distance [ok]: GEOSEARCH withdist [ok]: GEOSEARCHSTORE STORE option: plain usage [ok]: GEOSEARCHSTORE STORE option: syntax error [ok]: GEOSEARCHSTORE STOREDIST option: plain usage [ok]: GET command will not be marked with movablekeys [ok]: GETEX with big integer should report an error [ok]: GETEX with smallest integer should report an error [ok]: HOTKEYS - EVAL inside MULTI/EXEC with nested calls [ok]: HOTKEYS - commands inside MULTI/EXEC [ok]: HOTKEYS - nested commands [ok]: HOTKEYS GET - no conditional fields without selected slots [ok]: HOTKEYS GET - returns nil when not started [ok]: HOTKEYS GET - sample-ratio field [ok]: HOTKEYS RESET - Error: session in progress [ok]: HOTKEYS RESET - basic functionality [ok]: HOTKEYS START - Error: COUNT out of range [ok]: HOTKEYS START - Error: METRICS count mismatch [ok]: HOTKEYS START - Error: METRICS invalid metrics [ok]: HOTKEYS START - Error: METRICS same parameter [ok]: HOTKEYS START - Error: SAMPLE ratio invalid [ok]: HOTKEYS START - Error: SLOTS not allowed in non-cluster mode [ok]: HOTKEYS START - Error: invalid METRICS count [ok]: HOTKEYS START - Error: session already started [ok]: HOTKEYS START - METRICS required [ok]: HOTKEYS START - METRICS with CPU only [ok]: HOTKEYS START - METRICS with NET only [ok]: HOTKEYS START - METRICS with both CPU and NET [ok]: HOTKEYS START - with COUNT parameter [ok]: HOTKEYS START - with DURATION parameter [ok]: HOTKEYS START - with SAMPLE parameter [ok]: HOTKEYS STOP - basic functionality [ok]: HyperLogLog self test passes [ok]: HyperLogLog sparse encoding stress test [ok]: HyperLogLogs are promote from sparse to dense [ok]: Hyperloglog promote to dense well in different hll-sparse-max-bytes [ok]: If EXEC aborts, the client MULTI state is cleared [ok]: In transaction queue publish/subscribe/psubscribe to unauthorized channel will fail [ok]: Intersection cardinaltiy commands are access commands [ok]: It is possible to UNWATCH [ok]: It is possible to create new users [ok]: It is possible to remove passwords from the set of valid ones [ok]: It's possible to allow publishing to a subset of channels [ok]: It's possible to allow publishing to a subset of shard channels [ok]: It's possible to allow subscribing to a subset of channel patterns [ok]: It's possible to allow subscribing to a subset of channels [ok]: It's possible to allow subscribing to a subset of shard channels [ok]: It's possible to allow the access of a subset of keys [ok]: KEYS * two times with long key, Github issue #1208 [ok]: KEYS to get all keys [ok]: KEYS with hashtag [ok]: KEYS with pattern [ok]: KEYSIZES - Histogram values of Bytes, Kilo and Mega [ok]: KEYSIZES - Test i'th bin counts keysizes between [ok]: LATENCY GRAPH can output the event graph [ok]: LATENCY HISTOGRAM all commands [ok]: LATENCY HISTOGRAM command [ok]: LATENCY HISTOGRAM sub commands [ok]: LATENCY HISTOGRAM with a subset of commands [ok]: LATENCY HISTOGRAM with empty histogram [ok]: LATENCY HISTOGRAM with wrong command name skips the invalid one [ok]: LATENCY HISTORY output is ok [ok]: LATENCY LATEST output is ok [ok]: LIBRARIES - delete removed all functions on library [ok]: LIBRARIES - load timeout [ok]: LIBRARIES - malicious access test [ok]: LIBRARIES - math.random from function load [ok]: LIBRARIES - named arguments [ok]: LIBRARIES - named arguments, bad callback type [ok]: LIBRARIES - named arguments, bad description [ok]: LIBRARIES - named arguments, bad function name [ok]: LIBRARIES - named arguments, missing callback [ok]: LIBRARIES - named arguments, missing function name [ok]: LIBRARIES - named arguments, unknown argument [ok]: LIBRARIES - redis.acl_check_cmd from function load [ok]: LIBRARIES - redis.call from function load [ok]: LIBRARIES - redis.set_repl from function load [ok]: LIBRARIES - redis.setresp from function load [ok]: LIBRARIES - register function inside a function [ok]: LIBRARIES - register library with no functions [ok]: LIBRARIES - test registration failure revert the entire load [ok]: LIBRARIES - test registration function name collision [ok]: LIBRARIES - test registration function name collision on same library [ok]: LIBRARIES - test registration with empty name [ok]: LIBRARIES - test registration with no argument [ok]: LIBRARIES - test registration with no string name [ok]: LIBRARIES - test registration with only name [ok]: LIBRARIES - test registration with to many arguments [ok]: LIBRARIES - test registration with wrong name format [ok]: LIBRARIES - test shared function can access default globals [ok]: LIBRARIES - usage and code sharing [ok]: LIBRARIES - verify global protection on the load run [ok]: LMOVE command will not be marked with movablekeys [ok]: LPOP command will not be marked with movablekeys [ok]: MASTERAUTH test with binary password rdbchannel=no [ok]: MASTERAUTH test with binary password rdbchannel=yes [ok]: MEMORY command will not be marked with movablekeys [ok]: MEMORY|USAGE command will not be marked with movablekeys [ok]: MIGRATE command is marked with movablekeys [ok]: MIGRATE is caching connections [ok]: MONITOR can log commands issued by functions [ok]: MONITOR can log commands issued by the scripting engine [ok]: MONITOR can log executed commands [ok]: MONITOR correctly handles multi-exec cases [ok]: MONITOR log blocked command only once [ok]: MONITOR supports redacting command arguments [ok]: MOVE against key existing in the target DB [ok]: MOVE against non-integer DB [ok]: MOVE basic usage [ok]: MOVE can move key expire metadata as well [ok]: MOVE does not create an expire if it does not exist [ok]: MSET command will not be marked with movablekeys [ok]: MULTI / EXEC basics [ok]: MULTI / EXEC is not propagated [ok]: MULTI / EXEC is propagated correctly [ok]: MULTI / EXEC is propagated correctly [ok]: MULTI / EXEC is propagated correctly [ok]: MULTI / EXEC is propagated correctly [ok]: MULTI / EXEC is propagated correctly [ok]: MULTI / EXEC with REPLICAOF [ok]: MULTI and script timeout [ok]: MULTI where commands alter argc/argv [ok]: MULTI-EXEC body and script timeout [ok]: Memory efficiency with values in range 1024 [ok]: Memory efficiency with values in range 128 [ok]: Memory efficiency with values in range 32 [ok]: Memory efficiency with values in range 64 [ok]: Nested MULTI are not allowed [ok]: New users start disabled [ok]: Non existing command [ok]: Once AUTH succeeded we can actually send commands to the server [ok]: Only default user has access to all channels irrespective of flag [ok]: Only the set of correct passwords work [ok]: Operations in no-touch mode TOUCH alters the last access time of a key [ok]: Operations in no-touch mode TOUCH from script alters the last access time of a key [ok]: Operations in no-touch mode do not alter the last access time of a key [ok]: PERSIST can undo an EXPIRE [ok]: PERSIST returns 0 against non existing or non volatile keys [ok]: PEXPIRE can set sub-second expires [ok]: PEXPIRE with big integer overflow when basetime is added [ok]: PEXPIREAT can set sub-second expires [ok]: PEXPIREAT with big integer works [ok]: PEXPIREAT with big negative integer works [ok]: PEXPIRETIME returns absolute expiration time in milliseconds [ok]: PFADD returns 0 when no reg was modified [ok]: PFADD returns 1 when at least 1 reg was modified [ok]: PFADD without arguments creates an HLL value [ok]: PFADD works with empty string [ok]: PFCOUNT returns approximated cardinality of set [ok]: PING [ok]: PING command will not be marked with movablekeys [ok]: PSETEX can set sub-second expires [ok]: PTTL returns time to live in milliseconds [ok]: Prefetch can resume working when the configuration option is set to a non-zero value [ok]: Prefetch works with batch size greater than 16 [ok]: Protected mode works as expected [ok]: RANDOMKEY [ok]: RANDOMKEY against empty DB [ok]: RANDOMKEY regression 1 [ok]: RENAME against already existing key [ok]: RENAME against non existing source key [ok]: RENAME basic usage [ok]: RENAME command will not be marked with movablekeys [ok]: RENAME source key should no longer exist [ok]: RENAME where source and dest key are the same [ok]: RENAME where source and dest key are the same [ok]: RENAME with volatile key, should move the TTL as well [ok]: RENAME with volatile key, should not inherit TTL of target key [ok]: RENAMENX against already existing key [ok]: RENAMENX against already existing key [ok]: RENAMENX basic usage [ok]: RENAMENX where source and dest key are the same [ok]: RESET does NOT clean library name [ok]: RESTORE can detect a syntax error for unrecognized options [ok]: RESTORE can overwrite an existing key with REPLACE [ok]: RESTORE can set LFU [ok]: RESTORE can set LRU [ok]: RESTORE can set an absolute expire [ok]: RESTORE can set an arbitrary expire to the materialized key [ok]: RESTORE can set an expire that overflows a 32 bit integer [ok]: RESTORE returns an error of the key already exists [ok]: RESTORE should not store key that are already expired, with REPLACE will propagate it as DEL or UNLINK [ok]: RESTORE with ABSTTL in the past [ok]: RESTORE with TTL maintain valid object [ok]: Redis should actively expire keys incrementally [ok]: Redis should lazy expire keys [ok]: Regression for pattern matching long nested loops [ok]: Regression for pattern matching very long nested loops [ok]: Run consecutive blocking FLUSHALL ASYNC successfully [ok]: SET and RESTORE key nearly as large as the memory limit [ok]: SET command will not be marked with movablekeys [ok]: SET with EX with big integer should report an error [ok]: SET with EX with smallest integer should report an error [ok]: SET/GET keys in different DBs [ok]: SETBIT/BITFIELD only increase dirty when the value changed [ok]: SETEX - Check value [ok]: SETEX - Overwrite old key [ok]: SETEX - Set + Expire combo operation. Check for TTL [ok]: SETEX - Wait for the key to expire [ok]: SETEX - Wrong time parameter [ok]: SORT command is marked with movablekeys [ok]: SORT_RO command is marked with movablekeys [ok]: SWAPDB does not touch non-existing key replaced with stale key [ok]: SWAPDB does not touch stale key replaced with another stale key [ok]: SWAPDB does not touch watched stale keys [ok]: SWAPDB is able to touch the watched keys that do not exist [ok]: SWAPDB is able to touch the watched keys that exist [ok]: Single channel is not valid with allchannels [ok]: Single channel is valid [ok]: Subscribers are killed when revoked of allchannels permission [ok]: Subscribers are killed when revoked of channel permission [ok]: Subscribers are killed when revoked of channel permission [ok]: Subscribers are killed when revoked of channel permission [ok]: Subscribers are killed when revoked of pattern permission [ok]: Subscribers are pardoned if literal permissions are retained and/or gaining allchannels [ok]: TOUCH alters the last access time of a key [ok]: TOUCH returns the number of existing keys specified [ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -1 if key has no expire [ok]: TTL / PTTL / EXPIRETIME / PEXPIRETIME return -2 if key does not exit [ok]: TTL returns time to live in seconds [ok]: TTL, TYPE and EXISTS do not alter the last access time of a key [ok]: Test ACL GETUSER response information [ok]: Test ACL list idempotency [ok]: Test ACL log correctly identifies the relevant item when selectors are used [ok]: Test ACL selectors by default have no permissions [ok]: Test BITFIELD with read and write permissions [ok]: Test BITFIELD with separate read permission [ok]: Test BITFIELD with separate write permission [ok]: Test DRYRUN with wrong number of arguments [ok]: Test R+W is the same as all permissions [ok]: Test SET with read and write permissions [ok]: Test SET with separate read permission [ok]: Test SET with separate write permission [ok]: Test basic dry run functionality [ok]: Test basic multiple selectors [ok]: Test behavior of loading ACLs [ok]: Test deleting selectors [ok]: Test flexible selector definition [ok]: Test general keyspace commands require some type of permission to execute [ok]: Test hashed passwords removal [ok]: Test latency events logging [ok]: Test loading an ACL file with duplicate default user [ok]: Test loading an ACL file with duplicate users [ok]: Test loading duplicate users in config on startup [ok]: Test password hashes can be added [ok]: Test password hashes validate input [ok]: Test selector syntax error reports the error in the selector context [ok]: Test separate read and write permissions [ok]: Test separate read and write permissions on different selectors are not additive [ok]: Test separate read permission [ok]: Test separate write permission [ok]: Test sharded channel permissions [ok]: Test sort with ACL permissions [ok]: Test various commands for command permissions [ok]: Test various odd commands for key permissions [ok]: The microsecond part of the TIME command will not overflow [ok]: UNLINK can reclaim memory in background [ok]: UNWATCH when there is nothing watched works as expected [ok]: Untagged multi-key commands [ok]: Update acl-pubsub-default, existing users shouldn't get affected [ok]: Usernames can not contain spaces or null characters [ok]: Users can be configured to authenticate with any password [ok]: Validate read and write permissions format - empty pattern [ok]: Validate read and write permissions format - empty permission [ok]: Validate read and write permissions format - empty selector [ok]: Validate read and write permissions format - no pattern [ok]: Validate subset of channels is prefixed with resetchannels flag [ok]: Vararg DEL [ok]: Verify that LUT overhead is properly updated when dicts are emptied or reused [ok]: WATCH inside MULTI is not allowed [ok]: WATCH is able to remember the DB a key belongs to [ok]: WATCH stale keys should not fail EXEC [ok]: WATCH will consider touched expired keys [ok]: WATCH will consider touched keys target of EXPIRE [ok]: When a setname chain is used in the HELLO cmd, the last setname cmd has precedence [ok]: When an authentication chain is used in the HELLO cmd, the last auth cmd has precedence [ok]: When authentication fails in the HELLO cmd, the client setname should not be applied [ok]: When default user has no command permission, hello command still works for other users [ok]: When default user is off, new connections are not authenticated [ok]: XREAD command is marked with movablekeys [ok]: ZUNIONSTORE command is marked with movablekeys [ok]: Zero length value in key. SET/GET/EXISTS [ok]: avoid client eviction when client is freed by output buffer limit [ok]: blocked command gets rejected when reprocessed after permission change [ok]: cannot modify protected configuration - local [ok]: cannot modify protected configuration - no [ok]: client evicted due to client tracking prefixes [ok]: client evicted due to large argv [ok]: client evicted due to large multi buf [ok]: client evicted due to large query buf [ok]: client evicted due to output buf [ok]: client evicted due to percentage of maxmemory [ok]: client evicted due to pubsub subscriptions [ok]: client evicted due to tracking redirection [ok]: client evicted due to watched key list [ok]: client no-evict off [ok]: client no-evict on [ok]: clients: pubsub clients [ok]: clients: watching clients [ok]: command stats for BRPOP [ok]: command stats for EXPIRE [ok]: command stats for GEOADD [ok]: command stats for MULTI [ok]: command stats for scripts [ok]: decrease maxmemory-clients causes client eviction [ok]: default: load from config file with all channels permissions [ok]: default: load from config file, without channel permission default user can't access any channels [ok]: default: load from include file, can access any channels [ok]: default: with config acl-pubsub-default allchannels after reset, can access any channels [ok]: default: with config acl-pubsub-default resetchannels after reset, can not access any channels [ok]: errors stats for GEOADD [ok]: errorstats: blocking commands [ok]: errorstats: failed call NOGROUP error [ok]: errorstats: failed call NOSCRIPT error [ok]: errorstats: failed call authentication error [ok]: errorstats: failed call within LUA [ok]: errorstats: failed call within MULTI/EXEC [ok]: errorstats: limit errors will not increase indefinitely [ok]: errorstats: rejected call by OOM error [ok]: errorstats: rejected call by authorization error [ok]: errorstats: rejected call due to wrong arity [ok]: errorstats: rejected call unknown command [ok]: errorstats: rejected call within MULTI/EXEC [ok]: eviction due to input buffer of a dead client, client eviction: false [ok]: eviction due to input buffer of a dead client, client eviction: true [ok]: eviction due to output buffers of many MGET clients, client eviction: false [ok]: eviction due to output buffers of many MGET clients, client eviction: true [ok]: eviction due to output buffers of pubsub, client eviction: false [ok]: eviction due to output buffers of pubsub, client eviction: true [ok]: exec with read commands and stale replica state change [ok]: exec with write commands and state change [ok]: info command with at most one sub command [ok]: info command with multiple sub-sections [ok]: info command with one sub-section [ok]: just EXEC and script timeout [ok]: latencystats: bad configure percentiles [ok]: latencystats: blocking commands [ok]: latencystats: configure percentiles [ok]: latencystats: disable/enable [ok]: latencystats: measure latency [ok]: latencystats: subcommands [ok]: lazy free a stream with all types of metadata [ok]: lazy free a stream with deleted cgroup [ok]: maxmemory - is the memory limit honoured? [ok]: maxmemory - is the memory limit honoured? [ok]: maxmemory - is the memory limit honoured? [ok]: maxmemory - is the memory limit honoured? [ok]: maxmemory - is the memory limit honoured? [ok]: maxmemory - is the memory limit honoured? [ok]: memory: database and pubsub overhead and rehashing dict count [ok]: memory: used_memory_peak_time is updated when used_memory_peak is updated [ok]: no prefetch when the batch size is set to 0 [ok]: prefetch works as expected when changing the batch size while executing the commands batch [ok]: prefetch works as expected when killing a client from the middle of prefetch commands batch [ok]: redis-server command line arguments - allow option value to use the `--` prefix [ok]: redis-server command line arguments - allow passing option name and option value in the same arg [ok]: redis-server command line arguments - error cases [ok]: redis-server command line arguments - option name and option value in the same arg and `--` prefix [ok]: redis-server command line arguments - save with empty input [ok]: redis-server command line arguments - take one bulk string with spaces for MULTI_ARG configs parsing [ok]: redis-server command line arguments - wrong usage that we support anyway [ok]: stats: client input and output buffer limit disconnections [ok]: stats: debug metrics [ok]: stats: eventloop metrics [ok]: stats: instantaneous metrics