valkey/tests/assets/test_cli_hint_suite.txt
Jacob Murphy df5db0627f
Remove trademarked language in code comments (#223)
This includes comments used for module API documentation.

* Strategy for replacement: Regex search: `(//|/\*| \*|#).* ("|\()?(r|R)edis( |\.
  |'|\n|,|-|\)|")(?!nor the names of its contributors)(?!Ltd.)(?!Labs)(?!Contributors.)`
* Don't edit copyright comments
* Replace "Redis version X.X" -> "Redis OSS version X.X" to distinguish
from newly licensed repository
* Replace "Redis Object" -> "Object"
* Exclude markdown for now
* Don't edit Lua scripting comments referring to redis.X API
* Replace "Redis Protocol" -> "RESP"
* Replace redis-benchmark, -cli, -server, -check-aof/rdb with "valkey-"
prefix
* Most other places, I use best judgement to either remove "Redis", or
replace with "the server" or "server"

Fixes #148

---------

Signed-off-by: Jacob Murphy <jkmurphy@google.com>
Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
2024-04-09 10:24:03 +02:00

112 lines
6.3 KiB
Plaintext

# Test suite for valkey-cli command-line hinting mechanism.
# Each test case consists of two strings: a (partial) input command line, and the expected hint string.
# Command with one arg: GET key
"GET " "key"
"GET abc " ""
# Command with two args: DECRBY key decrement
"DECRBY xyz 2 " ""
"DECRBY xyz " "decrement"
"DECRBY " "key decrement"
# Command with optional arg: LPOP key [count]
"LPOP key " "[count]"
"LPOP key 3 " ""
# Command with optional token arg: XRANGE key start end [COUNT count]
"XRANGE " "key start end [COUNT count]"
"XRANGE k 4 2 " "[COUNT count]"
"XRANGE k 4 2 COU" "[COUNT count]"
"XRANGE k 4 2 COUNT" "[COUNT count]"
"XRANGE k 4 2 COUNT " "count"
# Command with optional token block arg: BITFIELD_RO key [GET encoding offset [GET encoding offset ...]]
"BITFIELD_RO k " "[GET encoding offset [GET encoding offset ...]]"
"BITFIELD_RO k GE" "[GET encoding offset [GET encoding offset ...]]"
"BITFIELD_RO k GET" "[GET encoding offset [GET encoding offset ...]]"
# TODO: The following hints end with an unbalanced "]" which shouldn't be there.
"BITFIELD_RO k GET " "encoding offset [GET encoding offset ...]]"
"BITFIELD_RO k GET xyz " "offset [GET encoding offset ...]]"
"BITFIELD_RO k GET xyz 12 " "[GET encoding offset ...]]"
"BITFIELD_RO k GET xyz 12 GET " "encoding offset [GET encoding offset ...]]"
"BITFIELD_RO k GET enc1 12 GET enc2 " "offset [GET encoding offset ...]]"
"BITFIELD_RO k GET enc1 12 GET enc2 34 " "[GET encoding offset ...]]"
# Two-word command with multiple non-token block args: CONFIG SET parameter value [parameter value ...]
"CONFIG SET param " "value [parameter value ...]"
"CONFIG SET param val " "[parameter value ...]"
"CONFIG SET param val param2 val2 " "[parameter value ...]"
# Command with nested optional args: ZRANDMEMBER key [count [WITHSCORES]]
"ZRANDMEMBER k " "[count [WITHSCORES]]"
"ZRANDMEMBER k 3 " "[WITHSCORES]"
"ZRANDMEMBER k 3 WI" "[WITHSCORES]"
"ZRANDMEMBER k 3 WITHSCORES " ""
# Wrong data type: count must be an integer. Hinting fails.
"ZRANDMEMBER k cnt " ""
# Command ends with repeated arg: MGET key [key ...]
"MGET " "key [key ...]"
"MGET k " "[key ...]"
"MGET k k " "[key ...]"
# Optional args can be in any order: SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]
"SCAN 2 MATCH " "pattern [COUNT count] [TYPE type]"
"SCAN 2 COUNT " "count [MATCH pattern] [TYPE type]"
# One-of choices: BLMOVE source destination LEFT|RIGHT LEFT|RIGHT timeout
"BLMOVE src dst LEFT " "LEFT|RIGHT timeout"
# Optional args can be in any order: ZRANGE key min max [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
"ZRANGE k 1 2 " "[BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]"
"ZRANGE k 1 2 bylex " "[REV] [LIMIT offset count] [WITHSCORES]"
"ZRANGE k 1 2 bylex rev " "[LIMIT offset count] [WITHSCORES]"
"ZRANGE k 1 2 limit 2 4 " "[BYSCORE|BYLEX] [REV] [WITHSCORES]"
"ZRANGE k 1 2 bylex rev limit 2 4 WITHSCORES " ""
"ZRANGE k 1 2 rev " "[BYSCORE|BYLEX] [LIMIT offset count] [WITHSCORES]"
"ZRANGE k 1 2 WITHSCORES " "[BYSCORE|BYLEX] [REV] [LIMIT offset count]"
# Optional one-of args with parameters: SET key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]
"SET key value " "[NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]"
"SET key value EX" "[NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]"
"SET key value EX " "seconds [NX|XX] [GET]"
"SET key value EX 23 " "[NX|XX] [GET]"
"SET key value EXAT" "[NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]"
"SET key value EXAT " "unix-time-seconds [NX|XX] [GET]"
"SET key value PX" "[NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]"
"SET key value PX " "milliseconds [NX|XX] [GET]"
"SET key value PXAT" "[NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]"
"SET key value PXAT " "unix-time-milliseconds [NX|XX] [GET]"
"SET key value KEEPTTL " "[NX|XX] [GET]"
"SET key value XX " "[GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]"
# If an input word can't be matched, stop hinting.
"SET key value FOOBAR " ""
# Incorrect type for EX 'seconds' parameter - stop hinting.
"SET key value EX sec " ""
# Reordering partially-matched optional argument: GEORADIUS key longitude latitude radius M|KM|FT|MI [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key|STOREDIST key]
"GEORADIUS key " "longitude latitude radius M|KM|FT|MI [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key|STOREDIST key]"
"GEORADIUS key 1 2 3 M " "[WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key|STOREDIST key]"
"GEORADIUS key 1 2 3 M COUNT " "count [ANY] [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [STORE key|STOREDIST key]"
"GEORADIUS key 1 2 3 M COUNT 12 " "[ANY] [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [STORE key|STOREDIST key]"
"GEORADIUS key 1 2 3 M COUNT 12 " "[ANY] [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [STORE key|STOREDIST key]"
"GEORADIUS key 1 -2.345 3 M COUNT 12 " "[ANY] [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [STORE key|STOREDIST key]"" ""
# Wrong data type: latitude must be a double. Hinting fails.
"GEORADIUS key 1 X " ""
# Once the next optional argument is started, the [ANY] hint completing the COUNT argument disappears.
"GEORADIUS key 1 2 3 M COUNT 12 ASC " "[WITHCOORD] [WITHDIST] [WITHHASH] [STORE key|STOREDIST key]"
# Incorrect argument type for double-valued token parameter.
"GEOSEARCH k FROMLONLAT " "longitude latitude BYRADIUS radius M|KM|FT|MI|BYBOX width height M|KM|FT|MI [ASC|DESC] [COUNT count [ANY]] [WITHCOORD] [WITHDIST] [WITHHASH]"
"GEOSEARCH k FROMLONLAT 2.34 4.45 BYRADIUS badvalue " ""
# Optional parameters followed by mandatory params: ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score member ...]
"ZADD key " "[NX|XX] [GT|LT] [CH] [INCR] score member [score member ...]"
"ZADD key CH LT " "[NX|XX] [INCR] score member [score member ...]"
"ZADD key 0 " "member [score member ...]"
# Empty-valued token argument represented as a pair of double-quotes.
"MIGRATE " "host port key|\"\" destination-db timeout [COPY] [REPLACE] [AUTH password|AUTH2 username password] [KEYS key [key ...]]"