Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
ac3ad3d5
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,发现更多精彩内容 >>
提交
ac3ad3d5
编写于
9月 10, 2019
作者:
Y
Yu Kun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
MS-532 Add grpc server unittest
Former-commit-id: 0bd3d8e3cd77ef72c3220747146d0fad47ef6e94
上级
2626f701
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
90 addition
and
26 deletion
+90
-26
cpp/coverage.sh
cpp/coverage.sh
+3
-0
cpp/src/sdk/examples/grpcsimple/src/ClientTest.cpp
cpp/src/sdk/examples/grpcsimple/src/ClientTest.cpp
+5
-5
cpp/unittest/server/rpc_test.cpp
cpp/unittest/server/rpc_test.cpp
+82
-21
未找到文件。
cpp/coverage.sh
浏览文件 @
ac3ad3d5
...
...
@@ -96,6 +96,9 @@ ${LCOV_CMD} -r "${FILE_INFO_OUTPUT}" -o "${FILE_INFO_OUTPUT_NEW}" \
"*/cmake_build/*_ep-prefix/*"
\
"src/core/cmake_build*"
\
"src/core/thirdparty*"
\
"src/grpc*"
\
"src/server/Server.cpp"
\
"src/server/grpc_impl/GrpcMilvusServer.cpp"
\
# gen html report
${
LCOV_GEN_CMD
}
"
${
FILE_INFO_OUTPUT_NEW
}
"
--output-directory
${
DIR_LCOV_OUTPUT
}
/
\ No newline at end of file
cpp/src/sdk/examples/grpcsimple/src/ClientTest.cpp
浏览文件 @
ac3ad3d5
...
...
@@ -24,10 +24,10 @@ const std::string TABLE_NAME = GetTableName();
constexpr
int64_t
TABLE_DIMENSION
=
512
;
constexpr
int64_t
TABLE_INDEX_FILE_SIZE
=
1024
;
constexpr
int64_t
BATCH_ROW_COUNT
=
1000000
;
constexpr
int64_t
NQ
=
100
0
;
constexpr
int64_t
TOP_K
=
1
0
;
constexpr
int64_t
NQ
=
100
;
constexpr
int64_t
TOP_K
=
1
;
constexpr
int64_t
SEARCH_TARGET
=
5000
;
//change this value, result is different
constexpr
int64_t
ADD_VECTOR_LOOP
=
1
;
constexpr
int64_t
ADD_VECTOR_LOOP
=
1
0
;
constexpr
int64_t
SECONDS_EACH_HOUR
=
3600
;
#define BLOCK_SPLITER std::cout << "===========================================" << std::endl;
...
...
@@ -283,14 +283,14 @@ ClientTest::Test(const std::string& address, const std::string& port) {
int64_t
row_count
=
0
;
Status
stat
=
conn
->
CountTable
(
TABLE_NAME
,
row_count
);
std
::
cout
<<
TABLE_NAME
<<
"("
<<
row_count
<<
" rows)"
<<
std
::
endl
;
DoSearch
(
conn
,
search_record_array
,
"Search without index"
);
//
DoSearch(conn, search_record_array, "Search without index");
}
{
//wait unit build index finish
std
::
cout
<<
"Wait until create all index done"
<<
std
::
endl
;
IndexParam
index
;
index
.
table_name
=
TABLE_NAME
;
index
.
index_type
=
IndexType
::
gpu_ivf
flat
;
index
.
index_type
=
IndexType
::
gpu_ivf
sq8
;
index
.
nlist
=
16384
;
Status
stat
=
conn
->
CreateIndex
(
index
);
std
::
cout
<<
"CreateIndex function call status: "
<<
stat
.
ToString
()
<<
std
::
endl
;
...
...
cpp/unittest/server/rpc_test.cpp
浏览文件 @
ac3ad3d5
...
...
@@ -32,7 +32,7 @@ namespace grpc {
static
const
char
*
TABLE_NAME
=
"test_grpc"
;
static
constexpr
int64_t
TABLE_DIM
=
256
;
static
constexpr
int64_t
INDEX_FILE_SIZE
=
1024
;
static
constexpr
int64_t
VECTOR_COUNT
=
1000
0
;
static
constexpr
int64_t
VECTOR_COUNT
=
1000
;
static
constexpr
int64_t
INSERT_LOOP
=
10
;
constexpr
int64_t
SECONDS_EACH_HOUR
=
3600
;
...
...
@@ -80,11 +80,11 @@ class RpcHandlerTest : public testing::Test {
handler
=
std
::
make_shared
<
GrpcRequestHandler
>
();
::
grpc
::
ServerContext
context
;
::
milvus
::
grpc
::
TableSchema
request
;
::
milvus
::
grpc
::
Status
status
;
request
.
mutable_table_name
()
->
set_table_name
(
TABLE_NAME
);
request
.
set_dimension
(
TABLE_DIM
);
request
.
set_index_file_size
(
INDEX_FILE_SIZE
);
request
.
set_metric_type
(
1
);
::
milvus
::
grpc
::
Status
status
;
::
grpc
::
Status
grpc_status
=
handler
->
CreateTable
(
&
context
,
&
request
,
&
status
);
}
...
...
@@ -135,9 +135,10 @@ std::string CurrentTmDate(int64_t offset_day = 0) {
TEST_F
(
RpcHandlerTest
,
HasTableTest
)
{
::
grpc
::
ServerContext
context
;
::
milvus
::
grpc
::
TableName
request
;
request
.
set_table_name
(
TABLE_NAME
);
::
milvus
::
grpc
::
BoolReply
reply
;
::
grpc
::
Status
status
=
handler
->
HasTable
(
&
context
,
&
request
,
&
reply
);
request
.
set_table_name
(
TABLE_NAME
);
status
=
handler
->
HasTable
(
&
context
,
&
request
,
&
reply
);
ASSERT_TRUE
(
status
.
error_code
()
==
::
grpc
::
Status
::
OK
.
error_code
());
int
error_code
=
reply
.
status
().
error_code
();
ASSERT_EQ
(
error_code
,
::
milvus
::
grpc
::
ErrorCode
::
SUCCESS
);
...
...
@@ -147,13 +148,21 @@ TEST_F(RpcHandlerTest, IndexTest) {
::
grpc
::
ServerContext
context
;
::
milvus
::
grpc
::
IndexParam
request
;
::
milvus
::
grpc
::
Status
response
;
::
grpc
::
Status
grpc_status
=
handler
->
CreateIndex
(
&
context
,
&
request
,
&
response
);
request
.
mutable_table_name
()
->
set_table_name
(
"test1"
);
handler
->
CreateIndex
(
&
context
,
&
request
,
&
response
);
request
.
mutable_table_name
()
->
set_table_name
(
TABLE_NAME
);
handler
->
CreateIndex
(
&
context
,
&
request
,
&
response
);
request
.
mutable_index
()
->
set_index_type
(
1
);
handler
->
CreateIndex
(
&
context
,
&
request
,
&
response
);
request
.
mutable_index
()
->
set_nlist
(
16384
);
::
grpc
::
Status
grpc_status
=
handler
->
CreateIndex
(
&
context
,
&
request
,
&
response
);
grpc_status
=
handler
->
CreateIndex
(
&
context
,
&
request
,
&
response
);
ASSERT_EQ
(
grpc_status
.
error_code
(),
::
grpc
::
Status
::
OK
.
error_code
());
int
error_code
=
response
.
error_code
();
ASSERT_EQ
(
error_code
,
::
milvus
::
grpc
::
ErrorCode
::
SUCCESS
);
//
ASSERT_EQ(error_code, ::milvus::grpc::ErrorCode::SUCCESS);
::
milvus
::
grpc
::
TableName
table_name
;
table_name
.
set_table_name
(
TABLE_NAME
);
...
...
@@ -161,13 +170,13 @@ TEST_F(RpcHandlerTest, IndexTest) {
handler
->
DescribeIndex
(
&
context
,
&
table_name
,
&
index_param
);
::
milvus
::
grpc
::
Status
status
;
handler
->
DropIndex
(
&
context
,
&
table_name
,
&
status
);
// ASSERT_EQ();
}
TEST_F
(
RpcHandlerTest
,
InsertTest
)
{
::
grpc
::
ServerContext
context
;
::
milvus
::
grpc
::
InsertParam
request
;
::
milvus
::
grpc
::
Status
response
;
request
.
set_table_name
(
TABLE_NAME
);
std
::
vector
<
std
::
vector
<
float
>>
record_array
;
BuildVectors
(
0
,
VECTOR_COUNT
,
record_array
);
...
...
@@ -199,50 +208,94 @@ TEST_F(RpcHandlerTest, SearchTest) {
}
handler
->
Search
(
&
context
,
&
request
,
&
response
);
::
milvus
::
grpc
::
SearchInFilesParam
search_in_files_param
;
// search_in_files_param.set
handler
->
SearchInFiles
(
&
context
,
&
search_in_files_param
,
&
response
);
}
TEST_F
(
RpcHandlerTest
,
TablesTest
)
{
std
::
string
tablename
=
"tbl"
;
::
grpc
::
ServerContext
context
;
::
milvus
::
grpc
::
InsertParam
request
;
::
milvus
::
grpc
::
TableSchema
tableschema
;
::
milvus
::
grpc
::
Status
response
;
request
.
set_table_name
(
tablename
);
std
::
string
tablename
=
"tbl"
;
//create table test
//test null input
handler
->
CreateTable
(
&
context
,
nullptr
,
&
response
);
//test invalid table name
handler
->
CreateTable
(
&
context
,
&
tableschema
,
&
response
);
//test invalid table dimension
tableschema
.
mutable_table_name
()
->
set_table_name
(
tablename
);
handler
->
CreateTable
(
&
context
,
&
tableschema
,
&
response
);
//test invalid index file size
tableschema
.
set_dimension
(
TABLE_DIM
);
// handler->CreateTable(&context, &tableschema, &response);
//test invalid index metric type
tableschema
.
set_index_file_size
(
INDEX_FILE_SIZE
);
handler
->
CreateTable
(
&
context
,
&
tableschema
,
&
response
);
//test table already exist
tableschema
.
set_metric_type
(
1
);
handler
->
CreateTable
(
&
context
,
&
tableschema
,
&
response
);
//describe table test
//test invalid table name
::
milvus
::
grpc
::
TableName
table_name
;
::
milvus
::
grpc
::
TableSchema
table_schema
;
handler
->
DescribeTable
(
&
context
,
&
table_name
,
&
table_schema
);
table_name
.
set_table_name
(
TABLE_NAME
);
::
grpc
::
Status
status
=
handler
->
DescribeTable
(
&
context
,
&
table_name
,
&
table_schema
);
ASSERT_EQ
(
status
.
error_code
(),
::
grpc
::
Status
::
OK
.
error_code
());
::
milvus
::
grpc
::
InsertParam
request
;
std
::
vector
<
std
::
vector
<
float
>>
record_array
;
BuildVectors
(
0
,
VECTOR_COUNT
,
record_array
);
::
milvus
::
grpc
::
VectorIds
vector_ids
;
//Insert vectors
//test invalid table name
handler
->
Insert
(
&
context
,
&
request
,
&
vector_ids
);
request
.
set_table_name
(
tablename
);
//test empty row record
handler
->
Insert
(
&
context
,
&
request
,
&
vector_ids
);
for
(
auto
&
record
:
record_array
)
{
::
milvus
::
grpc
::
RowRecord
*
grpc_record
=
request
.
add_row_record_array
();
for
(
size_t
i
=
0
;
i
<
record
.
size
();
i
++
)
{
grpc_record
->
add_vector_data
(
record
[
i
]);
}
}
//test vector_id size not equal to row record size
vector_ids
.
set_vector_id_array
(
0
,
1
);
handler
->
Insert
(
&
context
,
&
request
,
&
vector_ids
);
//Insert vectors
//normally test
vector_ids
.
clear_vector_id_array
();
handler
->
Insert
(
&
context
,
&
request
,
&
vector_ids
);
//Show table
::
milvus
::
grpc
::
Command
cmd
;
::
grpc
::
ServerWriter
<::
milvus
::
grpc
::
TableName
>
*
writer
;
// status = handler->ShowTables(&context, &cmd, writer);
// ASSERT_EQ(status.error_code(), ::grpc::Status::OK.error_code());
//Count Table
::
milvus
::
grpc
::
TableRowCount
count
;
::
milvus
::
grpc
::
TableName
table_name
;
table_name
.
set_table_name
(
tablename
);
::
grpc
::
Status
status
=
handler
->
CountTable
(
&
context
,
&
table_name
,
&
count
);
status
=
handler
->
CountTable
(
&
context
,
&
table_name
,
&
count
);
ASSERT_EQ
(
status
.
error_code
(),
::
grpc
::
Status
::
OK
.
error_code
());
ASSERT_EQ
(
count
.
table_row_count
(),
vector_ids
.
vector_id_array_size
());
//
ASSERT_EQ(count.table_row_count(), vector_ids.vector_id_array_size());
//Describe table
::
milvus
::
grpc
::
TableSchema
table_schema
;
request
.
set_table_name
(
TABLE_NAME
);
status
=
handler
->
DescribeTable
(
&
context
,
&
table_name
,
&
table_schema
);
ASSERT_EQ
(
status
.
error_code
(),
::
grpc
::
Status
::
OK
.
error_code
());
//Preload Table
status
=
handler
->
PreloadTable
(
&
context
,
&
table_name
,
&
response
);
ASSERT_EQ
(
status
.
error_code
(),
::
grpc
::
Status
::
OK
.
error_code
());
//Drop table
request
.
set_table_name
(
tablename
);
table_name
.
set_table_name
(
""
);
//test invalid table name
::
grpc
::
Status
grpc_status
=
handler
->
DropTable
(
&
context
,
&
table_name
,
&
response
);
table_name
.
set_table_name
(
tablename
);
grpc_status
=
handler
->
DropTable
(
&
context
,
&
table_name
,
&
response
);
ASSERT_EQ
(
grpc_status
.
error_code
(),
::
grpc
::
Status
::
OK
.
error_code
());
int
error_code
=
status
.
error_code
();
ASSERT_EQ
(
error_code
,
::
milvus
::
grpc
::
ErrorCode
::
SUCCESS
);
...
...
@@ -269,6 +322,15 @@ TEST_F(RpcHandlerTest, DeleteByRangeTest) {
::
grpc
::
Status
grpc_status
=
handler
->
DeleteByRange
(
&
context
,
&
request
,
&
status
);
int
error_code
=
status
.
error_code
();
ASSERT_EQ
(
error_code
,
::
milvus
::
grpc
::
ErrorCode
::
SUCCESS
);
request
.
mutable_range
()
->
set_start_value
(
"aaa"
);
grpc_status
=
handler
->
DeleteByRange
(
&
context
,
&
request
,
&
status
);
request
.
mutable_range
()
->
set_start_value
(
CurrentTmDate
(
-
2
));
request
.
mutable_range
()
->
set_end_value
(
"aaa"
);
grpc_status
=
handler
->
DeleteByRange
(
&
context
,
&
request
,
&
status
);
request
.
mutable_range
()
->
set_end_value
(
CurrentTmDate
(
-
2
));
grpc_status
=
handler
->
DeleteByRange
(
&
context
,
&
request
,
&
status
);
}
//////////////////////////////////////////////////////////////////////
...
...
@@ -323,7 +385,6 @@ TEST_F(RpcSchedulerTest, BaseTaskTest){
task_ptr
=
nullptr
;
GrpcRequestScheduler
::
GetInstance
().
ExecuteTask
(
task_ptr
);
GrpcRequestScheduler
::
GetInstance
().
Stop
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录