Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
b189a219
R
redis
项目概览
xindoo
/
redis
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b189a219
编写于
1月 30, 2020
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ACL LOG: implement a few basic tests.
上级
39616176
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
87 addition
and
0 deletion
+87
-0
tests/unit/acl.tcl
tests/unit/acl.tcl
+87
-0
未找到文件。
tests/unit/acl.tcl
浏览文件 @
b189a219
...
...
@@ -141,4 +141,91 @@ start_server {tags {"acl"}} {
r ACL setuser newuser -debug
# The test framework will detect a leak if any.
}
test
{
ACL LOG shows failed command executions at toplevel
}
{
r ACL LOG RESET
r ACL setuser antirez >foo on +set ~object:1234
r ACL setuser antirez +eval +multi +exec
r AUTH antirez foo
catch
{
r GET foo
}
r AUTH default
""
set entry
[
lindex
[
r ACL LOG
]
0
]
assert
{[
dict get $entry username
]
eq
{
antirez
}}
assert
{[
dict get $entry context
]
eq
{
toplevel
}}
assert
{[
dict get $entry reason
]
eq
{
command
}}
assert
{[
dict get $entry object
]
eq
{
get
}}
}
test
{
ACL LOG is able to test similar events
}
{
r AUTH antirez foo
catch
{
r GET foo
}
catch
{
r GET foo
}
catch
{
r GET foo
}
r AUTH default
""
set entry
[
lindex
[
r ACL LOG
]
0
]
assert
{[
dict get $entry count
]
== 4
}
}
test
{
ACL LOG is able to log keys access violations and key name
}
{
r AUTH antirez foo
catch
{
r SET somekeynotallowed 1234
}
r AUTH default
""
set entry
[
lindex
[
r ACL LOG
]
0
]
assert
{[
dict get $entry reason
]
eq
{
key
}}
assert
{[
dict get $entry object
]
eq
{
somekeynotallowed
}}
}
test
{
ACL LOG RESET is able to flush the entries in the log
}
{
r ACL LOG RESET
assert
{[
llength
[
r ACL LOG
]]
== 0
}
}
test
{
ACL LOG can distinguish the transaction context
(
1
)}
{
r AUTH antirez foo
r MULTI
catch
{
r INCR foo
}
catch
{
r EXEC
}
r AUTH default
""
set entry
[
lindex
[
r ACL LOG
]
0
]
assert
{[
dict get $entry context
]
eq
{
multi
}}
assert
{[
dict get $entry object
]
eq
{
incr
}}
}
test
{
ACL LOG can distinguish the transaction context
(
2
)}
{
set rd1
[
redis_deferring_client
]
r ACL SETUSER antirez +incr
r AUTH antirez foo
r MULTI
r INCR object:1234
$rd1 ACL SETUSER antirez -incr
$rd1 read
catch
{
r EXEC
}
$rd1 close
r AUTH default
""
set entry
[
lindex
[
r ACL LOG
]
0
]
assert
{[
dict get $entry context
]
eq
{
multi
}}
assert
{[
dict get $entry object
]
eq
{
incr
}}
r ACL SETUSER antirez -incr
}
test
{
ACL can log errors in the context of Lua scripting
}
{
r AUTH antirez foo
catch
{
r EVAL
{
redis.call
(
'incr','foo'
)}
0
}
r AUTH default
""
set entry
[
lindex
[
r ACL LOG
]
0
]
assert
{[
dict get $entry context
]
eq
{
lua
}}
assert
{[
dict get $entry object
]
eq
{
incr
}}
}
test
{
ACL LOG can accept a numerical argument to show less entries
}
{
r AUTH antirez foo
catch
{
r INCR foo
}
catch
{
r INCR foo
}
catch
{
r INCR foo
}
catch
{
r INCR foo
}
r AUTH default
""
assert
{[
llength
[
r ACL LOG
]]
> 1
}
assert
{[
llength
[
r ACL LOG 2
]]
== 2
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录