redict/tests/unit/moduleapi/basics.tcl
Madelyn Olson effa707e9d
Fix incorrect error code for eval scripts and fix test error checking (#10575)
By the convention of errors, there is supposed to be a space between the code and the name.
While looking at some lua stuff I noticed that interpreter errors were not adding the space,
so some clients will try to map the detailed error message into the error.

We have tests that hit this condition, but they were just checking that the string "starts" with ERR.
I updated some other tests with similar incorrect string checking. This isn't complete though, as
there are other ways we check for ERR I didn't fix.

Produces some fun output like:
```
# Errorstats
errorstat_ERR:count=1
errorstat_ERRuser_script_1_:count=1
```
2022-04-14 11:18:32 +03:00

41 lines
1.1 KiB
Tcl

set testmodule [file normalize tests/modules/basics.so]
start_server {tags {"modules"}} {
r module load $testmodule
test {test module api basics} {
r test.basics
} {ALL TESTS PASSED}
test {test rm_call auto mode} {
r hello 2
set reply [r test.rmcallautomode]
assert_equal [lindex $reply 0] f1
assert_equal [lindex $reply 1] v1
assert_equal [lindex $reply 2] f2
assert_equal [lindex $reply 3] v2
r hello 3
set reply [r test.rmcallautomode]
assert_equal [dict get $reply f1] v1
assert_equal [dict get $reply f2] v2
}
test {test get resp} {
r hello 2
set reply [r test.getresp]
assert_equal $reply 2
r hello 3
set reply [r test.getresp]
assert_equal $reply 3
}
test "Unload the module - test" {
assert_equal {OK} [r module unload test]
}
}
start_server {tags {"modules external:skip"} overrides {enable-module-command no}} {
test {module command disabled} {
assert_error "ERR *MODULE command not allowed*" {r module load $testmodule}
}
}