From 6da123ce7737dcfc0483df5ec130450fb6c0ec53 Mon Sep 17 00:00:00 2001 From: VivekSainiEQ Date: Mon, 30 Nov 2020 22:18:32 +0000 Subject: [PATCH] Added module data type load/save tests Former-commit-id: cae9924fd9eefcd88cef1c964f0bc8bce7dd4242 --- runtest-moduleapi | 1 + tests/assets/redis-module-save.rdb | Bin 0 -> 214 bytes tests/unit/loadsave.tcl | 4 +-- tests/unit/moduleapi/moduleloadsave.tcl | 43 ++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 tests/assets/redis-module-save.rdb create mode 100644 tests/unit/moduleapi/moduleloadsave.tcl diff --git a/runtest-moduleapi b/runtest-moduleapi index f3abde740..8b2a12806 100755 --- a/runtest-moduleapi +++ b/runtest-moduleapi @@ -27,4 +27,5 @@ $TCLSH tests/test_helper.tcl \ --single unit/moduleapi/auth \ --single unit/moduleapi/keyspace_events \ --single unit/moduleapi/blockedclient \ +--single unit/moduleapi/moduleloadsave \ "${@}" diff --git a/tests/assets/redis-module-save.rdb b/tests/assets/redis-module-save.rdb new file mode 100644 index 0000000000000000000000000000000000000000..b741b1b44d7abea34e638143f748c6a7f7d84782 GIT binary patch literal 214 zcmWG?b@2=~Ffg$E#aWb^l3A=RR+=95J6*PL6*eglr)IA5kg!JVT2(xNCEu1U_ E0IQr+djJ3c literal 0 HcmV?d00001 diff --git a/tests/unit/loadsave.tcl b/tests/unit/loadsave.tcl index 28052fc0d..4216d3960 100644 --- a/tests/unit/loadsave.tcl +++ b/tests/unit/loadsave.tcl @@ -37,12 +37,10 @@ exec cp -f tests/assets/redis-save.rdb $server_path/dump.rdb start_server [list tags [list "loadsave"] overrides [list "dir" $server_path] keep_persistence true] { test "Load various data types from Redis generated .rdb file" { set loaded_digest [r debug digest] + puts loaded_digest if {![string match $saved_digest $loaded_digest]} { fail "Loaded data did not match saved data" } } } -puts $server_path - - diff --git a/tests/unit/moduleapi/moduleloadsave.tcl b/tests/unit/moduleapi/moduleloadsave.tcl new file mode 100644 index 000000000..9a5796384 --- /dev/null +++ b/tests/unit/moduleapi/moduleloadsave.tcl @@ -0,0 +1,43 @@ +set server_path [tmpdir "server.rdb-encoding-test"] +set testmodule [file normalize tests/modules/datatype.so] + +# Store module data typed data to the database, +# compute the hash of the database, +# and save the data to a file +start_server [list tags [list "loadsave"] overrides [list "dir" $server_path "loadmodule" $testmodule] keep_persistence true] { + + test "Save module data type to .rdb file" { + r datatype.set key1 100 stringval + r datatype.set key2 200 stringval + r datatype.set key3 300 stringval + r datatype.set key4 400 stringval + r datatype.set key5 500 stringval + set saved_digest [r debug digest]; + r save + } {OK}; +} + +# Load that data back from the file, +# and compare its hash to the previously computed hash +start_server [list tags [list "loadsave"] overrides [list "dir" $server_path "loadmodule" $testmodule] keep_persistence true] { + test "Load module data type from .rdb file" { + set loaded_digest [r debug digest] + if {![string match $saved_digest $loaded_digest]} { + fail "Loaded data did not match saved data" + } + } +} + +# Load in data from a redis instance +# The hash should match what we get in redis +set saved_digest acffad6b89e21339dc5c80f53f6c6fa15977a848 +exec cp -f tests/assets/redis-module-save.rdb $server_path/dump.rdb + +start_server [list tags [list "loadsave"] overrides [list "dir" $server_path "loadmodule" $testmodule] keep_persistence true] { + test "Load module data type from Redis generated .rdb file" { + set loaded_digest [r debug digest] + if {![string match $saved_digest $loaded_digest]} { + fail "Loaded data did not match saved data" + } + } +}