12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- set testmodule [file normalize tests/modules/infotest.so]
- # Return value for INFO property
- proc field {info property} {
- if {[regexp "\r\n$property:(.*?)\r\n" $info _ value]} {
- set _ $value
- }
- }
- start_server {tags {"modules"}} {
- r module load $testmodule log-key 0
- test {module reading info} {
- # check string, integer and float fields
- assert_equal [r info.gets replication role] "master"
- assert_equal [r info.getc replication role] "master"
- assert_equal [r info.geti stats expired_keys] 0
- assert_equal [r info.getd stats expired_stale_perc] 0
- # check signed and unsigned
- assert_equal [r info.geti infotest infotest_global] -2
- assert_equal [r info.getu infotest infotest_uglobal] -2
- # the above are always 0, try module info that is non-zero
- assert_equal [r info.geti infotest_italian infotest_due] 2
- set tre [r info.getd infotest_italian infotest_tre]
- assert {$tre > 3.2 && $tre < 3.4 }
- # search using the wrong section
- catch { [r info.gets badname redis_version] } e
- assert_match {*not found*} $e
- # check that section filter works
- assert { [string match "*usec_per_call*" [r info.gets all cmdstat_info.gets] ] }
- catch { [r info.gets default cmdstat_info.gets] ] } e
- assert_match {*not found*} $e
- }
- test {module info all} {
- set info [r info all]
- # info all does not contain modules
- assert { ![string match "*Spanish*" $info] }
- assert { ![string match "*infotest_*" $info] }
- assert { [string match "*used_memory*" $info] }
- }
- test {module info everything} {
- set info [r info everything]
- # info everything contains all default sections, but not ones for crash report
- assert { [string match "*infotest_global*" $info] }
- assert { [string match "*Spanish*" $info] }
- assert { [string match "*Italian*" $info] }
- assert { [string match "*used_memory*" $info] }
- assert { ![string match "*Klingon*" $info] }
- field $info infotest_dos
- } {2}
- test {module info modules} {
- set info [r info modules]
- # info all does not contain modules
- assert { [string match "*Spanish*" $info] }
- assert { [string match "*infotest_global*" $info] }
- assert { ![string match "*used_memory*" $info] }
- }
- test {module info one module} {
- set info [r info INFOTEST]
- # info all does not contain modules
- assert { [string match "*Spanish*" $info] }
- assert { ![string match "*used_memory*" $info] }
- field $info infotest_global
- } {-2}
- test {module info one section} {
- set info [r info INFOTEST_SPANISH]
- assert { ![string match "*used_memory*" $info] }
- assert { ![string match "*Italian*" $info] }
- assert { ![string match "*infotest_global*" $info] }
- field $info infotest_uno
- } {one}
- test {module info dict} {
- set info [r info infotest_keyspace]
- set keyspace [field $info infotest_db0]
- set keys [scan [regexp -inline {keys\=([\d]*)} $keyspace] keys=%d]
- } {3}
- test {module info unsafe fields} {
- set info [r info infotest_unsafe]
- assert_match {*infotest_unsafe_field:value=1*} $info
- }
- # TODO: test crash report.
- }
|