summaryrefslogtreecommitdiff
path: root/tests/modules
diff options
context:
space:
mode:
authorShaya Potter <shaya@redislabs.com>2021-10-25 11:31:20 +0300
committerGitHub <noreply@github.com>2021-10-25 11:31:20 +0300
commit12ce2c3925ee8fa6cfe0f5091eba21968b95c0c9 (patch)
tree15c34eaec5803901a29058e4bdf33614e52b4224 /tests/modules
parentc1718f9d862267bc44b2a326cdc8cb1ca5b81a39 (diff)
downloadredis-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/Makefile3
-rw-r--r--tests/modules/reply.c19
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)