diff options
author | Shaya Potter <shaya@redislabs.com> | 2021-10-25 11:31:20 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-25 11:31:20 +0300 |
commit | 12ce2c3925ee8fa6cfe0f5091eba21968b95c0c9 (patch) | |
tree | 15c34eaec5803901a29058e4bdf33614e52b4224 /tests/modules | |
parent | c1718f9d862267bc44b2a326cdc8cb1ca5b81a39 (diff) | |
download | redis-12ce2c3925ee8fa6cfe0f5091eba21968b95c0c9.tar.gz |
Add RM_ReplyWithBigNumber module API (#9639)
Let modules use additional type of RESP3 response (unused by redis so far)
Also fix tests that where introduced in #8521 but didn't actually run.
Co-authored-by: Oran Agra <oran@redislabs.com>
Diffstat (limited to 'tests/modules')
-rw-r--r-- | tests/modules/Makefile | 3 | ||||
-rw-r--r-- | tests/modules/reply.c | 19 |
2 files changed, 19 insertions, 3 deletions
diff --git a/tests/modules/Makefile b/tests/modules/Makefile index 41d356a1e..29602c6fe 100644 --- a/tests/modules/Makefile +++ b/tests/modules/Makefile @@ -51,7 +51,8 @@ TEST_MODULES = \ stream.so \ aclcheck.so \ list.so \ - subcommands.so + subcommands.so \ + reply.so .PHONY: all diff --git a/tests/modules/reply.c b/tests/modules/reply.c index 913fc72a8..3835909ad 100644 --- a/tests/modules/reply.c +++ b/tests/modules/reply.c @@ -47,6 +47,15 @@ int rw_longdouble(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { return RedisModule_ReplyWithLongDouble(ctx, longdbl); } +int rw_bignumber(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { + if (argc != 2) return RedisModule_WrongArity(ctx); + + size_t bignum_len; + const char *bignum_str = RedisModule_StringPtrLen(argv[1], &bignum_len); + + return RedisModule_ReplyWithBigNumber(ctx, bignum_str, bignum_len); +} + int rw_array(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { if (argc != 2) return RedisModule_WrongArity(ctx); @@ -106,6 +115,7 @@ int rw_attribute(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { for (int i = 0; i < integer; ++i) { RedisModule_ReplyWithLongLong(ctx, i); + RedisModule_ReplyWithDouble(ctx, i * 1.5); } RedisModule_ReplyWithSimpleString(ctx, "OK"); @@ -136,9 +146,12 @@ int rw_error(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { } int rw_verbatim(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 1) return RedisModule_WrongArity(ctx); + if (argc != 2) return RedisModule_WrongArity(ctx); - return RedisModule_ReplyWithVerbatimString(ctx, argv[1]); + size_t verbatim_len; + const char *verbatim_str = RedisModule_StringPtrLen(argv[1], &verbatim_len); + + return RedisModule_ReplyWithVerbatimString(ctx, verbatim_str, verbatim_len); } int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { @@ -151,6 +164,8 @@ int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) return REDISMODULE_ERR; if (RedisModule_CreateCommand(ctx,"rw.cstring",rw_cstring,"",0,0,0) != REDISMODULE_OK) return REDISMODULE_ERR; + if (RedisModule_CreateCommand(ctx,"rw.bignumber",rw_bignumber,"",0,0,0) != REDISMODULE_OK) + return REDISMODULE_ERR; if (RedisModule_CreateCommand(ctx,"rw.int",rw_int,"",0,0,0) != REDISMODULE_OK) return REDISMODULE_ERR; if (RedisModule_CreateCommand(ctx,"rw.double",rw_double,"",0,0,0) != REDISMODULE_OK) |