Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
04c4135a
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
04c4135a
编写于
4月 27, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test: add unitest for sdb
上级
4bdd9088
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
101 addition
and
63 deletion
+101
-63
source/dnode/mnode/impl/src/mndUser.c
source/dnode/mnode/impl/src/mndUser.c
+10
-8
source/dnode/mnode/impl/test/sdb/sdbTest.cpp
source/dnode/mnode/impl/test/sdb/sdbTest.cpp
+91
-55
未找到文件。
source/dnode/mnode/impl/src/mndUser.c
浏览文件 @
04c4135a
...
...
@@ -39,14 +39,16 @@ static int32_t mndRetrieveUsers(SNodeMsg *pReq, SShowObj *pShow, SSDataBlock *p
static
void
mndCancelGetNextUser
(
SMnode
*
pMnode
,
void
*
pIter
);
int32_t
mndInitUser
(
SMnode
*
pMnode
)
{
SSdbTable
table
=
{.
sdbType
=
SDB_USER
,
.
keyType
=
SDB_KEY_BINARY
,
.
deployFp
=
(
SdbDeployFp
)
mndCreateDefaultUsers
,
.
encodeFp
=
(
SdbEncodeFp
)
mndUserActionEncode
,
.
decodeFp
=
(
SdbDecodeFp
)
mndUserActionDecode
,
.
insertFp
=
(
SdbInsertFp
)
mndUserActionInsert
,
.
updateFp
=
(
SdbUpdateFp
)
mndUserActionUpdate
,
.
deleteFp
=
(
SdbDeleteFp
)
mndUserActionDelete
};
SSdbTable
table
=
{
.
sdbType
=
SDB_USER
,
.
keyType
=
SDB_KEY_BINARY
,
.
deployFp
=
(
SdbDeployFp
)
mndCreateDefaultUsers
,
.
encodeFp
=
(
SdbEncodeFp
)
mndUserActionEncode
,
.
decodeFp
=
(
SdbDecodeFp
)
mndUserActionDecode
,
.
insertFp
=
(
SdbInsertFp
)
mndUserActionInsert
,
.
updateFp
=
(
SdbUpdateFp
)
mndUserActionUpdate
,
.
deleteFp
=
(
SdbDeleteFp
)
mndUserActionDelete
,
};
mndSetMsgHandle
(
pMnode
,
TDMT_MND_CREATE_USER
,
mndProcessCreateUserReq
);
mndSetMsgHandle
(
pMnode
,
TDMT_MND_ALTER_USER
,
mndProcessAlterUserReq
);
...
...
source/dnode/mnode/impl/test/sdb/sdbTest.cpp
浏览文件 @
04c4135a
...
...
@@ -9,75 +9,111 @@
*
*/
#include
"sut.h"
#include
<gtest/gtest.h>
class
MndTestShow
:
public
::
testing
::
Test
{
protected:
static
void
SetUpTestSuite
()
{
test
.
Init
(
"/tmp/mnode_test_show"
,
9021
);
}
static
void
TearDownTestSuite
()
{
test
.
Cleanup
();
}
#include "sdb.h"
static
Testbase
test
;
class
MndTestSdb
:
public
::
testing
::
Test
{
protected:
static
void
SetUpTestSuite
()
{}
static
void
TearDownTestSuite
()
{}
public:
void
SetUp
()
override
{}
void
TearDown
()
override
{}
};
Testbase
MndTestShow
::
test
;
TEST_F
(
MndTestShow
,
01
_ShowMsg_InvalidMsgMax
)
{
SShowReq
showReq
=
{
0
};
showReq
.
type
=
TSDB_MGMT_TABLE_MAX
;
int32_t
contLen
=
tSerializeSShowReq
(
NULL
,
0
,
&
showReq
);
void
*
pReq
=
rpcMallocCont
(
contLen
);
tSerializeSShowReq
(
pReq
,
contLen
,
&
showReq
);
tFreeSShowReq
(
&
showReq
);
SRpcMsg
*
pRsp
=
test
.
SendReq
(
TDMT_MND_SYSTABLE_RETRIEVE
,
pReq
,
contLen
);
ASSERT_NE
(
pRsp
,
nullptr
);
ASSERT_NE
(
pRsp
->
code
,
0
);
typedef
struct
SStrObj
{
char
key
[
24
];
int8_t
v8
;
int16_t
v16
;
int32_t
v32
;
int64_t
v64
;
char
vstr
[
32
];
char
unused
[
48
];
}
SStrObj
;
typedef
struct
SI32Obj
{
int32_t
key
;
int8_t
v8
;
int16_t
v16
;
int32_t
v32
;
int64_t
v64
;
char
vstr
[
32
];
char
unused
[
48
];
}
SI32Obj
;
typedef
struct
SI64Obj
{
int64_t
key
;
int8_t
v8
;
int16_t
v16
;
int32_t
v32
;
int64_t
v64
;
char
vstr
[
32
];
char
unused
[
48
];
}
SI64Obj
;
SSdbRaw
*
strEncode
(
SStrObj
*
pObj
)
{
int32_t
dataPos
=
0
;
SSdbRaw
*
pRaw
=
sdbAllocRaw
(
SDB_USER
,
1
,
sizeof
(
SStrObj
));
sdbSetRawBinary
(
pRaw
,
dataPos
,
pObj
->
key
,
sizeof
(
pObj
->
key
));
dataPos
+=
sizeof
(
pObj
->
key
);
sdbSetRawInt8
(
pRaw
,
dataPos
,
pObj
->
v8
);
dataPos
+=
sizeof
(
pObj
->
v8
);
sdbSetRawInt16
(
pRaw
,
dataPos
,
pObj
->
v16
);
dataPos
+=
sizeof
(
pObj
->
v16
);
sdbSetRawInt32
(
pRaw
,
dataPos
,
pObj
->
v32
);
dataPos
+=
sizeof
(
pObj
->
v32
);
sdbSetRawInt64
(
pRaw
,
dataPos
,
pObj
->
v64
);
dataPos
+=
sizeof
(
pObj
->
v64
);
sdbSetRawBinary
(
pRaw
,
dataPos
,
pObj
->
key
,
sizeof
(
pObj
->
vstr
));
dataPos
+=
sizeof
(
pObj
->
key
);
sdbSetRawDataLen
(
pRaw
,
dataPos
);
return
pRaw
;
}
TEST_F
(
MndTestShow
,
02
_ShowMsg_InvalidMsgStart
)
{
SShowReq
showReq
=
{
0
};
showReq
.
type
=
TSDB_MGMT_TABLE_START
;
int32_t
contLen
=
tSerializeSShowReq
(
NULL
,
0
,
&
showReq
);
void
*
pReq
=
rpcMallocCont
(
contLen
);
tSerializeSShowReq
(
pReq
,
contLen
,
&
showReq
);
tFreeSShowReq
(
&
showReq
);
SRpcMsg
*
pRsp
=
test
.
SendReq
(
TDMT_MND_SYSTABLE_RETRIEVE
,
pReq
,
contLen
);
ASSERT_NE
(
pRsp
,
nullptr
);
ASSERT_NE
(
pRsp
->
code
,
0
);
SSdbRaw
*
strDecode
(
SStrObj
*
pObj
)
{
int32_t
dataPos
=
0
;
SSdbRaw
*
pRaw
=
sdbAllocRaw
(
SDB_USER
,
1
,
sizeof
(
SStrObj
));
sdbSetRawBinary
(
pRaw
,
dataPos
,
pObj
->
key
,
sizeof
(
pObj
->
key
));
dataPos
+=
sizeof
(
pObj
->
key
);
sdbSetRawInt8
(
pRaw
,
dataPos
,
pObj
->
v8
);
dataPos
+=
sizeof
(
pObj
->
v8
);
sdbSetRawInt16
(
pRaw
,
dataPos
,
pObj
->
v16
);
dataPos
+=
sizeof
(
pObj
->
v16
);
sdbSetRawInt32
(
pRaw
,
dataPos
,
pObj
->
v32
);
dataPos
+=
sizeof
(
pObj
->
v32
);
sdbSetRawInt64
(
pRaw
,
dataPos
,
pObj
->
v64
);
dataPos
+=
sizeof
(
pObj
->
v64
);
sdbSetRawBinary
(
pRaw
,
dataPos
,
pObj
->
key
,
sizeof
(
pObj
->
vstr
));
dataPos
+=
sizeof
(
pObj
->
key
);
sdbSetRawDataLen
(
pRaw
,
dataPos
);
return
pRaw
;
}
TEST_F
(
MndTestShow
,
03
_ShowMsg_Conn
)
{
char
passwd
[]
=
"taosdata"
;
char
secretEncrypt
[
TSDB_PASSWORD_LEN
]
=
{
0
};
taosEncryptPass_c
((
uint8_t
*
)
passwd
,
strlen
(
passwd
),
secretEncrypt
);
TEST_F
(
MndTestSdb
,
01
_Basic
)
{
SSdbOpt
opt
=
{
0
};
opt
.
path
=
"/tmp/mnode_test_sdb"
;
SConnectReq
connectReq
=
{
0
};
connectReq
.
pid
=
1234
;
strcpy
(
connectReq
.
app
,
"mnode_test_show"
);
strcpy
(
connectReq
.
db
,
""
);
strcpy
(
connectReq
.
user
,
"root"
);
strcpy
(
connectReq
.
passwd
,
secretEncrypt
);
SSdb
*
pSdb
=
sdbInit
(
&
opt
);
EXPECT_NE
(
pSdb
,
nullptr
);
int32_t
contLen
=
tSerializeSConnectReq
(
NULL
,
0
,
&
connectReq
);
void
*
pReq
=
rpcMallocCont
(
contLen
);
tSerializeSConnectReq
(
pReq
,
contLen
,
&
connectReq
);
SSdbTable
strTable
=
{
.
sdbType
=
SDB_USER
,
.
keyType
=
SDB_KEY_BINARY
,
.
deployFp
=
(
SdbDeployFp
)
strEncode
,
.
encodeFp
=
(
SdbEncodeFp
)
strDecode
,
.
decodeFp
=
(
SdbDecodeFp
)
NULL
,
.
insertFp
=
(
SdbInsertFp
)
NULL
,
.
updateFp
=
(
SdbUpdateFp
)
NULL
,
.
deleteFp
=
(
SdbDeleteFp
)
NULL
,
};
SRpcMsg
*
pRsp
=
test
.
SendReq
(
TDMT_MND_CONNECT
,
pReq
,
contLen
);
ASSERT_NE
(
pRsp
,
nullptr
);
ASSERT_EQ
(
pRsp
->
code
,
0
);
test
.
SendShowReq
(
TSDB_MGMT_TABLE_CONNS
,
"connections"
,
""
);
// EXPECT_EQ(test.GetShowRows(), 1);
}
sdbSetTable
(
pSdb
,
strTable
);
TEST_F
(
MndTestShow
,
04
_ShowMsg_Cluster
)
{
test
.
SendShowReq
(
TSDB_MGMT_TABLE_CLUSTER
,
"cluster"
,
""
);
EXPECT_EQ
(
test
.
GetShowRows
(),
1
);
sdbCleanup
(
pSdb
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录