Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
82144e35
T
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
82144e35
编写于
3月 21, 2022
作者:
M
Minghao Li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sync refactor
上级
aea4e0f4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
162 addition
and
9 deletion
+162
-9
source/libs/sync/test/CMakeLists.txt
source/libs/sync/test/CMakeLists.txt
+14
-0
source/libs/sync/test/syncElectTest.cpp
source/libs/sync/test/syncElectTest.cpp
+4
-3
source/libs/sync/test/syncRefTest.cpp
source/libs/sync/test/syncRefTest.cpp
+134
-0
source/libs/sync/test/syncReplicateTest.cpp
source/libs/sync/test/syncReplicateTest.cpp
+10
-6
未找到文件。
source/libs/sync/test/CMakeLists.txt
浏览文件 @
82144e35
...
...
@@ -31,6 +31,7 @@ add_executable(syncElectTest "")
add_executable
(
syncEncodeTest
""
)
add_executable
(
syncWriteTest
""
)
add_executable
(
syncReplicateTest
""
)
add_executable
(
syncRefTest
""
)
target_sources
(
syncTest
...
...
@@ -165,6 +166,10 @@ target_sources(syncReplicateTest
PRIVATE
"syncReplicateTest.cpp"
)
target_sources
(
syncRefTest
PRIVATE
"syncRefTest.cpp"
)
target_include_directories
(
syncTest
...
...
@@ -337,6 +342,11 @@ target_include_directories(syncReplicateTest
"
${
CMAKE_SOURCE_DIR
}
/include/libs/sync"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/../inc"
)
target_include_directories
(
syncRefTest
PUBLIC
"
${
CMAKE_SOURCE_DIR
}
/include/libs/sync"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/../inc"
)
target_link_libraries
(
syncTest
...
...
@@ -471,6 +481,10 @@ target_link_libraries(syncReplicateTest
sync
gtest_main
)
target_link_libraries
(
syncRefTest
sync
gtest_main
)
enable_testing
()
...
...
source/libs/sync/test/syncElectTest.cpp
浏览文件 @
82144e35
...
...
@@ -116,9 +116,10 @@ int main(int argc, char** argv) {
//---------------------------
while
(
1
)
{
sTrace
(
"elect sleep, state: %d, %s, term:%lu electTimerLogicClock:%lu, electTimerLogicClockUser:%lu, electTimerMS:%d"
,
gSyncNode
->
state
,
syncUtilState2String
(
gSyncNode
->
state
),
gSyncNode
->
pRaftStore
->
currentTerm
,
gSyncNode
->
electTimerLogicClock
,
gSyncNode
->
electTimerLogicClockUser
,
gSyncNode
->
electTimerMS
);
sTrace
(
"elect sleep, state: %d, %s, term:%lu electTimerLogicClock:%lu, electTimerLogicClockUser:%lu, electTimerMS:%d"
,
gSyncNode
->
state
,
syncUtilState2String
(
gSyncNode
->
state
),
gSyncNode
->
pRaftStore
->
currentTerm
,
gSyncNode
->
electTimerLogicClock
,
gSyncNode
->
electTimerLogicClockUser
,
gSyncNode
->
electTimerMS
);
}
return
0
;
...
...
source/libs/sync/test/syncRefTest.cpp
0 → 100644
浏览文件 @
82144e35
#include <gtest/gtest.h>
#include <stdio.h>
#include "syncIO.h"
#include "syncInt.h"
#include "syncRaftStore.h"
#include "tref.h"
void
logTest
()
{
sTrace
(
"--- sync log test: trace"
);
sDebug
(
"--- sync log test: debug"
);
sInfo
(
"--- sync log test: info"
);
sWarn
(
"--- sync log test: warn"
);
sError
(
"--- sync log test: error"
);
sFatal
(
"--- sync log test: fatal"
);
}
static
void
syncFreeObj
(
void
*
param
);
int32_t
init
();
void
cleanup
();
int64_t
start
();
void
stop
(
int64_t
rid
);
static
int32_t
tsNodeRefId
=
-
1
;
int
g
=
100
;
typedef
struct
SyncObj
{
int64_t
rid
;
void
*
data
;
char
name
[
32
];
int
counter
;
}
SyncObj
;
static
void
syncFreeObj
(
void
*
param
)
{
SyncObj
*
pObj
=
(
SyncObj
*
)
param
;
printf
(
"syncFreeObj name:%s rid:%ld
\n
"
,
pObj
->
name
,
pObj
->
rid
);
free
(
pObj
);
}
int32_t
init
()
{
tsNodeRefId
=
taosOpenRef
(
200
,
syncFreeObj
);
if
(
tsNodeRefId
<
0
)
{
sError
(
"failed to init node ref"
);
cleanup
();
return
-
1
;
}
return
0
;
}
void
cleanup
()
{
if
(
tsNodeRefId
!=
-
1
)
{
taosCloseRef
(
tsNodeRefId
);
tsNodeRefId
=
-
1
;
}
}
int64_t
start
()
{
SyncObj
*
pObj
=
(
SyncObj
*
)
malloc
(
sizeof
(
SyncObj
));
assert
(
pObj
!=
NULL
);
pObj
->
data
=
&
g
;
snprintf
(
pObj
->
name
,
sizeof
(
pObj
->
name
),
"%s"
,
"hello"
);
pObj
->
rid
=
taosAddRef
(
tsNodeRefId
,
pObj
);
if
(
pObj
->
rid
<
0
)
{
syncFreeObj
(
pObj
);
return
-
1
;
}
printf
(
"start name:%s rid:%ld
\n
"
,
pObj
->
name
,
pObj
->
rid
);
return
pObj
->
rid
;
}
void
stop
(
int64_t
rid
)
{
SyncObj
*
pObj
=
(
SyncObj
*
)
taosAcquireRef
(
tsNodeRefId
,
rid
);
if
(
pObj
==
NULL
)
return
;
printf
(
"stop name:%s rid:%ld
\n
"
,
pObj
->
name
,
pObj
->
rid
);
pObj
->
data
=
NULL
;
taosReleaseRef
(
tsNodeRefId
,
pObj
->
rid
);
taosRemoveRef
(
tsNodeRefId
,
rid
);
}
void
*
func
(
void
*
param
)
{
int64_t
rid
=
(
int64_t
)
param
;
int32_t
ms
=
taosRand
()
%
10000
;
taosMsleep
(
ms
);
SyncObj
*
pObj
=
(
SyncObj
*
)
taosAcquireRef
(
tsNodeRefId
,
rid
);
if
(
pObj
!=
NULL
)
{
printf
(
"taosAcquireRef sleep:%d, name:%s, rid:%ld
\n
"
,
ms
,
pObj
->
name
,
pObj
->
rid
);
}
else
{
printf
(
"taosAcquireRef sleep:%d, NULL!
\n
"
,
ms
);
}
taosReleaseRef
(
tsNodeRefId
,
rid
);
}
int
main
()
{
// taosInitLog((char *)"syncTest.log", 100000, 10);
tsAsyncLog
=
0
;
sDebugFlag
=
143
+
64
;
logTest
();
taosSeedRand
(
taosGetTimestampSec
());
int32_t
ret
;
ret
=
init
();
assert
(
ret
==
0
);
int64_t
rid
=
start
();
assert
(
rid
>
0
);
for
(
int
i
=
0
;
i
<
20
;
++
i
)
{
pthread_t
tid
;
pthread_create
(
&
tid
,
NULL
,
func
,
(
void
*
)
rid
);
}
int32_t
ms
=
taosRand
()
%
10000
;
taosMsleep
(
ms
);
printf
(
"main sleep %d, stop and clean "
,
ms
);
stop
(
rid
);
cleanup
();
while
(
1
)
{
taosMsleep
(
1000
);
printf
(
"sleep 1 ...
\n
"
);
}
return
0
;
}
source/libs/sync/test/syncReplicateTest.cpp
浏览文件 @
82144e35
...
...
@@ -172,15 +172,19 @@ int main(int argc, char **argv) {
gSyncNode
->
FpEqMsg
(
gSyncNode
->
queue
,
&
rpcMsg
);
taosMsleep
(
1000
);
sTrace
(
"replicate sleep, state: %d, %s, term:%lu electTimerLogicClock:%lu, electTimerLogicClockUser:%lu, electTimerMS:%d"
,
gSyncNode
->
state
,
syncUtilState2String
(
gSyncNode
->
state
),
gSyncNode
->
pRaftStore
->
currentTerm
,
gSyncNode
->
electTimerLogicClock
,
gSyncNode
->
electTimerLogicClockUser
,
gSyncNode
->
electTimerMS
);
sTrace
(
"replicate sleep, state: %d, %s, term:%lu electTimerLogicClock:%lu, electTimerLogicClockUser:%lu, "
"electTimerMS:%d"
,
gSyncNode
->
state
,
syncUtilState2String
(
gSyncNode
->
state
),
gSyncNode
->
pRaftStore
->
currentTerm
,
gSyncNode
->
electTimerLogicClock
,
gSyncNode
->
electTimerLogicClockUser
,
gSyncNode
->
electTimerMS
);
}
while
(
1
)
{
sTrace
(
"replicate sleep, state: %d, %s, term:%lu electTimerLogicClock:%lu, electTimerLogicClockUser:%lu, electTimerMS:%d"
,
gSyncNode
->
state
,
syncUtilState2String
(
gSyncNode
->
state
),
gSyncNode
->
pRaftStore
->
currentTerm
,
gSyncNode
->
electTimerLogicClock
,
gSyncNode
->
electTimerLogicClockUser
,
gSyncNode
->
electTimerMS
);
sTrace
(
"replicate sleep, state: %d, %s, term:%lu electTimerLogicClock:%lu, electTimerLogicClockUser:%lu, "
"electTimerMS:%d"
,
gSyncNode
->
state
,
syncUtilState2String
(
gSyncNode
->
state
),
gSyncNode
->
pRaftStore
->
currentTerm
,
gSyncNode
->
electTimerLogicClock
,
gSyncNode
->
electTimerLogicClockUser
,
gSyncNode
->
electTimerMS
);
taosMsleep
(
1000
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录