diff options
Diffstat (limited to 'examples/redis-unstable/tests/modules/rdbloadsave.c')
| -rw-r--r-- | examples/redis-unstable/tests/modules/rdbloadsave.c | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/examples/redis-unstable/tests/modules/rdbloadsave.c b/examples/redis-unstable/tests/modules/rdbloadsave.c deleted file mode 100644 index 687269a..0000000 --- a/examples/redis-unstable/tests/modules/rdbloadsave.c +++ /dev/null @@ -1,162 +0,0 @@ -#include "redismodule.h" - -#include <stdlib.h> -#include <unistd.h> -#include <fcntl.h> -#include <memory.h> -#include <errno.h> - -/* Sanity tests to verify inputs and return values. */ -int sanity(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - REDISMODULE_NOT_USED(argv); - REDISMODULE_NOT_USED(argc); - - RedisModuleRdbStream *s = RedisModule_RdbStreamCreateFromFile("dbnew.rdb"); - - /* NULL stream should fail. */ - if (RedisModule_RdbLoad(ctx, NULL, 0) == REDISMODULE_OK || errno != EINVAL) { - RedisModule_ReplyWithError(ctx, strerror(errno)); - goto out; - } - - /* Invalid flags should fail. */ - if (RedisModule_RdbLoad(ctx, s, 188) == REDISMODULE_OK || errno != EINVAL) { - RedisModule_ReplyWithError(ctx, strerror(errno)); - goto out; - } - - /* Missing file should fail. */ - if (RedisModule_RdbLoad(ctx, s, 0) == REDISMODULE_OK || errno != ENOENT) { - RedisModule_ReplyWithError(ctx, strerror(errno)); - goto out; - } - - /* Save RDB file. */ - if (RedisModule_RdbSave(ctx, s, 0) != REDISMODULE_OK || errno != 0) { - RedisModule_ReplyWithError(ctx, strerror(errno)); - goto out; - } - - /* Load the saved RDB file. */ - if (RedisModule_RdbLoad(ctx, s, 0) != REDISMODULE_OK || errno != 0) { - RedisModule_ReplyWithError(ctx, strerror(errno)); - goto out; - } - - RedisModule_ReplyWithSimpleString(ctx, "OK"); - - out: - RedisModule_RdbStreamFree(s); - return REDISMODULE_OK; -} - -int cmd_rdbsave(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 2) { - RedisModule_WrongArity(ctx); - return REDISMODULE_OK; - } - - size_t len; - const char *filename = RedisModule_StringPtrLen(argv[1], &len); - - char tmp[len + 1]; - memcpy(tmp, filename, len); - tmp[len] = '\0'; - - RedisModuleRdbStream *stream = RedisModule_RdbStreamCreateFromFile(tmp); - - if (RedisModule_RdbSave(ctx, stream, 0) != REDISMODULE_OK || errno != 0) { - RedisModule_ReplyWithError(ctx, strerror(errno)); - goto out; - } - - RedisModule_ReplyWithSimpleString(ctx, "OK"); - -out: - RedisModule_RdbStreamFree(stream); - return REDISMODULE_OK; -} - -/* Fork before calling RM_RdbSave(). */ -int cmd_rdbsave_fork(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 2) { - RedisModule_WrongArity(ctx); - return REDISMODULE_OK; - } - - size_t len; - const char *filename = RedisModule_StringPtrLen(argv[1], &len); - - char tmp[len + 1]; - memcpy(tmp, filename, len); - tmp[len] = '\0'; - - int fork_child_pid = RedisModule_Fork(NULL, NULL); - if (fork_child_pid < 0) { - RedisModule_ReplyWithError(ctx, strerror(errno)); - return REDISMODULE_OK; - } else if (fork_child_pid > 0) { - /* parent */ - RedisModule_ReplyWithSimpleString(ctx, "OK"); - return REDISMODULE_OK; - } - - RedisModuleRdbStream *stream = RedisModule_RdbStreamCreateFromFile(tmp); - - int ret = 0; - if (RedisModule_RdbSave(ctx, stream, 0) != REDISMODULE_OK) { - ret = errno; - } - RedisModule_RdbStreamFree(stream); - - RedisModule_ExitFromChild(ret); - return REDISMODULE_OK; -} - -int cmd_rdbload(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - if (argc != 2) { - RedisModule_WrongArity(ctx); - return REDISMODULE_OK; - } - - size_t len; - const char *filename = RedisModule_StringPtrLen(argv[1], &len); - - char tmp[len + 1]; - memcpy(tmp, filename, len); - tmp[len] = '\0'; - - RedisModuleRdbStream *stream = RedisModule_RdbStreamCreateFromFile(tmp); - - if (RedisModule_RdbLoad(ctx, stream, 0) != REDISMODULE_OK || errno != 0) { - RedisModule_RdbStreamFree(stream); - RedisModule_ReplyWithError(ctx, strerror(errno)); - return REDISMODULE_OK; - } - - RedisModule_RdbStreamFree(stream); - RedisModule_ReplyWithSimpleString(ctx, "OK"); - return REDISMODULE_OK; -} - -int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { - REDISMODULE_NOT_USED(argv); - REDISMODULE_NOT_USED(argc); - - if (RedisModule_Init(ctx, "rdbloadsave", 1, REDISMODULE_APIVER_1) == REDISMODULE_ERR) - return REDISMODULE_ERR; - - if (RedisModule_CreateCommand(ctx, "test.sanity", sanity, "", 0, 0, 0) == REDISMODULE_ERR) - return REDISMODULE_ERR; - - if (RedisModule_CreateCommand(ctx, "test.rdbsave", cmd_rdbsave, "", 0, 0, 0) == REDISMODULE_ERR) - return REDISMODULE_ERR; - - if (RedisModule_CreateCommand(ctx, "test.rdbsave_fork", cmd_rdbsave_fork, "", 0, 0, 0) == REDISMODULE_ERR) - return REDISMODULE_ERR; - - if (RedisModule_CreateCommand(ctx, "test.rdbload", cmd_rdbload, "", 0, 0, 0) == REDISMODULE_ERR) - return REDISMODULE_ERR; - - return REDISMODULE_OK; -} |
