Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
1efe696f
milvus
项目概览
BaiXuePrincess
/
milvus
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1efe696f
编写于
9月 07, 2019
作者:
W
wxyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
MS-504 Update node_test in scheduler
Former-commit-id: 2477838780d6c2e6403bd1972faa24a0c850f40c
上级
d3e91efc
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
53 addition
and
61 deletion
+53
-61
cpp/CHANGELOG.md
cpp/CHANGELOG.md
+1
-0
cpp/src/scheduler/resource/Node.cpp
cpp/src/scheduler/resource/Node.cpp
+7
-23
cpp/src/scheduler/resource/Node.h
cpp/src/scheduler/resource/Node.h
+0
-6
cpp/unittest/scheduler/node_test.cpp
cpp/unittest/scheduler/node_test.cpp
+45
-32
未找到文件。
cpp/CHANGELOG.md
浏览文件 @
1efe696f
...
...
@@ -88,6 +88,7 @@ Please mark all change in change log and use the ticket from JIRA.
-
MS-487 - Define metric type in CreateTable
-
MS-488 - Improve code format in scheduler
-
MS-502 - Update tasktable_test in scheduler
-
MS-504 - Update node_test in scheduler
## New Feature
-
MS-343 - Implement ResourceMgr
...
...
cpp/src/scheduler/resource/Node.cpp
浏览文件 @
1efe696f
...
...
@@ -17,27 +17,6 @@ Node::Node() {
id_
=
counter
++
;
}
void
Node
::
DelNeighbour
(
const
NeighbourNodePtr
&
neighbour_ptr
)
{
std
::
lock_guard
<
std
::
mutex
>
lk
(
mutex_
);
if
(
auto
s
=
neighbour_ptr
.
lock
())
{
auto
search
=
neighbours_
.
find
(
s
->
id_
);
if
(
search
!=
neighbours_
.
end
())
{
neighbours_
.
erase
(
search
);
}
}
}
bool
Node
::
IsNeighbour
(
const
NeighbourNodePtr
&
neighbour_ptr
)
{
std
::
lock_guard
<
std
::
mutex
>
lk
(
mutex_
);
if
(
auto
s
=
neighbour_ptr
.
lock
())
{
auto
search
=
neighbours_
.
find
(
s
->
id_
);
if
(
search
!=
neighbours_
.
end
())
{
return
true
;
}
}
return
false
;
}
std
::
vector
<
Neighbour
>
Node
::
GetNeighbours
()
{
std
::
lock_guard
<
std
::
mutex
>
lk
(
mutex_
);
std
::
vector
<
Neighbour
>
ret
;
...
...
@@ -48,8 +27,13 @@ std::vector<Neighbour> Node::GetNeighbours() {
}
std
::
string
Node
::
Dump
()
{
// TODO(linxj): what's that?
return
std
::
__cxx11
::
string
();
std
::
stringstream
ss
;
ss
<<
"<Node, id="
<<
std
::
to_string
(
id_
)
<<
">::neighbours:"
<<
std
::
endl
;
for
(
auto
&
neighbour
:
neighbours_
)
{
ss
<<
"
\t
<Neighbour, id="
<<
std
::
to_string
(
neighbour
.
first
);
ss
<<
", connection: "
<<
neighbour
.
second
.
connection
.
Dump
()
<<
">"
<<
std
::
endl
;
}
return
ss
.
str
();
}
void
Node
::
AddNeighbour
(
const
NeighbourNodePtr
&
neighbour_node
,
Connection
&
connection
)
{
...
...
cpp/src/scheduler/resource/Node.h
浏览文件 @
1efe696f
...
...
@@ -37,12 +37,6 @@ public:
void
AddNeighbour
(
const
NeighbourNodePtr
&
neighbour_node
,
Connection
&
connection
);
void
DelNeighbour
(
const
NeighbourNodePtr
&
neighbour_ptr
);
bool
IsNeighbour
(
const
NeighbourNodePtr
&
neighbour_ptr
);
std
::
vector
<
Neighbour
>
GetNeighbours
();
...
...
cpp/unittest/scheduler/node_test.cpp
浏览文件 @
1efe696f
...
...
@@ -11,58 +11,71 @@ protected:
node1_
=
std
::
make_shared
<
Node
>
();
node2_
=
std
::
make_shared
<
Node
>
();
node3_
=
std
::
make_shared
<
Node
>
();
node4_
=
std
::
make_shared
<
Node
>
();
isolated_node1_
=
std
::
make_shared
<
Node
>
();
isolated_node2_
=
std
::
make_shared
<
Node
>
();
auto
pcie
=
Connection
(
"PCIe"
,
11.0
);
node1_
->
AddNeighbour
(
node2_
,
pcie
);
node1_
->
AddNeighbour
(
node3_
,
pcie
);
node2_
->
AddNeighbour
(
node1_
,
pcie
);
}
NodePtr
node1_
;
NodePtr
node2_
;
NodePtr
node3_
;
NodePtr
node4_
;
NodePtr
isolated_node1_
;
NodePtr
isolated_node2_
;
};
TEST_F
(
NodeTest
,
add_neighbour
)
{
ASSERT_EQ
(
node3
_
->
GetNeighbours
().
size
(),
0
);
ASSERT_EQ
(
node4
_
->
GetNeighbours
().
size
(),
0
);
ASSERT_EQ
(
isolated_node1
_
->
GetNeighbours
().
size
(),
0
);
ASSERT_EQ
(
isolated_node2
_
->
GetNeighbours
().
size
(),
0
);
auto
pcie
=
Connection
(
"PCIe"
,
11.0
);
node3_
->
AddNeighbour
(
node4_
,
pcie
);
node4_
->
AddNeighbour
(
node3_
,
pcie
);
ASSERT_EQ
(
node3_
->
GetNeighbours
().
size
(),
1
);
ASSERT_EQ
(
node4_
->
GetNeighbours
().
size
(),
1
);
isolated_node1_
->
AddNeighbour
(
isolated_node2_
,
pcie
);
ASSERT_EQ
(
isolated_node1_
->
GetNeighbours
().
size
(),
1
);
ASSERT_EQ
(
isolated_node2_
->
GetNeighbours
().
size
(),
0
);
}
TEST_F
(
NodeTest
,
del_neighbour
)
{
ASSERT_EQ
(
node1_
->
GetNeighbours
().
size
(),
1
);
ASSERT_EQ
(
node2_
->
GetNeighbours
().
size
(),
1
);
ASSERT_EQ
(
node3_
->
GetNeighbours
().
size
(),
0
);
node1_
->
DelNeighbour
(
node2_
);
node2_
->
DelNeighbour
(
node2_
);
node3_
->
DelNeighbour
(
node2_
);
ASSERT_EQ
(
node1_
->
GetNeighbours
().
size
(),
0
);
ASSERT_EQ
(
node2_
->
GetNeighbours
().
size
(),
1
);
ASSERT_EQ
(
node3_
->
GetNeighbours
().
size
(),
0
);
}
TEST_F
(
NodeTest
,
is_neighbour
)
{
ASSERT_TRUE
(
node1_
->
IsNeighbour
(
node2_
));
ASSERT_TRUE
(
node2_
->
IsNeighbour
(
node1_
));
ASSERT_FALSE
(
node1_
->
IsNeighbour
(
node3_
));
ASSERT_FALSE
(
node2_
->
IsNeighbour
(
node3_
));
ASSERT_FALSE
(
node3_
->
IsNeighbour
(
node1_
));
ASSERT_FALSE
(
node3_
->
IsNeighbour
(
node2_
));
TEST_F
(
NodeTest
,
repeat_add_neighbour
)
{
ASSERT_EQ
(
isolated_node1_
->
GetNeighbours
().
size
(),
0
);
ASSERT_EQ
(
isolated_node2_
->
GetNeighbours
().
size
(),
0
);
auto
pcie
=
Connection
(
"PCIe"
,
11.0
);
isolated_node1_
->
AddNeighbour
(
isolated_node2_
,
pcie
);
isolated_node1_
->
AddNeighbour
(
isolated_node2_
,
pcie
);
ASSERT_EQ
(
isolated_node1_
->
GetNeighbours
().
size
(),
1
);
ASSERT_EQ
(
isolated_node2_
->
GetNeighbours
().
size
(),
0
);
}
TEST_F
(
NodeTest
,
get_neighbours
)
{
{
bool
n2
=
false
,
n3
=
false
;
auto
node1_neighbours
=
node1_
->
GetNeighbours
();
ASSERT_EQ
(
node1_neighbours
.
size
(),
1
);
ASSERT_EQ
(
node1_neighbours
[
0
].
neighbour_node
.
lock
(),
node2_
);
ASSERT_EQ
(
node1_neighbours
.
size
(),
2
);
for
(
auto
&
n
:
node1_neighbours
)
{
if
(
n
.
neighbour_node
.
lock
()
==
node2_
)
n2
=
true
;
if
(
n
.
neighbour_node
.
lock
()
==
node3_
)
n3
=
true
;
}
ASSERT_TRUE
(
n2
);
ASSERT_TRUE
(
n3
);
}
{
auto
node2_neighbours
=
node2_
->
GetNeighbours
();
ASSERT_EQ
(
node2_neighbours
.
size
(),
1
);
ASSERT_EQ
(
node2_neighbours
[
0
].
neighbour_node
.
lock
(),
node1_
);
}
{
auto
node3_neighbours
=
node3_
->
GetNeighbours
();
ASSERT_EQ
(
node3_neighbours
.
size
(),
0
);
}
}
TEST_F
(
NodeTest
,
dump
)
{
std
::
cout
<<
node1_
->
Dump
();
ASSERT_FALSE
(
node1_
->
Dump
().
empty
());
std
::
cout
<<
node2_
->
Dump
();
ASSERT_FALSE
(
node2_
->
Dump
().
empty
());
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录