Tests: Add aclfile load and save tests (#7765)

improves test coverage
This commit is contained in:
杨博东 2020-09-09 22:13:35 +08:00 committed by GitHub
parent 042189fd87
commit 0666267d27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 0 deletions

2
tests/assets/user.acl Normal file
View File

@ -0,0 +1,2 @@
user alice on allcommands allkeys >alice
user bob on -@all +@set +acl ~set* >bob

View File

@ -261,3 +261,42 @@ start_server {tags {"acl"}} {
assert_match "*Unknown subcommand or wrong number of arguments*" $e
}
}
set server_path [tmpdir "server.acl"]
exec cp -f tests/assets/user.acl $server_path
start_server [list overrides [list "dir" $server_path "aclfile" "user.acl"]] {
# user alice on allcommands allkeys >alice
# user bob on -@all +@set +acl ~set* >bob
test "Alice: can excute all command" {
r AUTH alice alice
assert_equal "alice" [r acl whoami]
r SET key value
}
test "Bob: just excute @set and acl command" {
r AUTH bob bob
assert_equal "bob" [r acl whoami]
assert_equal "3" [r sadd set 1 2 3]
catch {r SET key value} e
set e
} {*NOPERM*}
test "ACL load and save" {
r ACL setuser eve +get allkeys >eve on
r ACL save
# ACL load will free user and kill clients
r ACL load
catch {r ACL LIST} e
assert_match {*I/O error*} $e
reconnect
r AUTH alice alice
r SET key value
r AUTH eve eve
r GET key
catch {r SET key value} e
set e
} {*NOPERM*}
}