Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
sds-keyval
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
4
Issues
4
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sds
sds-keyval
Commits
6ff35da8
Commit
6ff35da8
authored
Aug 09, 2019
by
Matthieu Dorier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
put test into separate function
parent
7740c181
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
29 deletions
+44
-29
test/sdskv-cxx-test.cc
test/sdskv-cxx-test.cc
+44
-29
No files found.
test/sdskv-cxx-test.cc
View file @
6ff35da8
...
...
@@ -18,6 +18,8 @@
static
std
::
string
gen_random_string
(
size_t
len
);
static
int
put_get_erase_test
(
sdskv
::
database
&
DB
,
uint32_t
num_keys
);
int
main
(
int
argc
,
char
*
argv
[])
{
char
cli_addr_prefix
[
64
]
=
{
0
};
...
...
@@ -68,35 +70,8 @@ int main(int argc, char *argv[])
/* open the database */
sdskv
::
database
DB
=
kvcl
.
open
(
kvph
,
db_name
);
/* **** put keys ***** */
std
::
vector
<
std
::
string
>
keys
;
std
::
map
<
std
::
string
,
std
::
string
>
reference
;
size_t
max_value_size
=
24
;
for
(
unsigned
i
=
0
;
i
<
num_keys
;
i
++
)
{
auto
k
=
gen_random_string
(
16
);
// half of the entries will be put using bulk
auto
v
=
gen_random_string
(
3
+
i
*
(
max_value_size
-
3
)
/
num_keys
);
DB
.
put
(
k
,
v
);
std
::
cout
<<
"Inserted "
<<
k
<<
"
\t
===> "
<<
v
<<
std
::
endl
;
reference
[
k
]
=
v
;
keys
.
push_back
(
k
);
}
std
::
cout
<<
"Successfuly inserted "
<<
num_keys
<<
" keys"
<<
std
::
endl
;
/* **** get keys **** */
for
(
unsigned
i
=
0
;
i
<
num_keys
;
i
++
)
{
auto
k
=
keys
[
rand
()
%
keys
.
size
()];
size_t
value_size
=
max_value_size
;
std
::
vector
<
char
>
v
(
max_value_size
);
DB
.
get
(
k
,
v
);
std
::
string
vstring
((
char
*
)(
v
.
data
()));
std
::
cout
<<
"Got "
<<
k
<<
" ===> "
<<
vstring
<<
std
::
endl
;
if
(
vstring
!=
reference
[
k
])
{
std
::
cerr
<<
"DB.get() returned a value different from the reference"
<<
std
::
endl
;
return
-
1
;
}
}
/* Put get erase test */
put_get_erase_test
(
DB
,
num_keys
);
/* shutdown the server */
kvcl
.
shutdown
(
svr_addr
);
...
...
@@ -122,3 +97,43 @@ static std::string gen_random_string(size_t len) {
}
return
s
;
}
static
int
put_get_erase_test
(
sdskv
::
database
&
DB
,
uint32_t
num_keys
)
{
/* **** put keys ***** */
std
::
vector
<
std
::
string
>
keys
;
std
::
map
<
std
::
string
,
std
::
string
>
reference
;
size_t
max_value_size
=
24
;
for
(
unsigned
i
=
0
;
i
<
num_keys
;
i
++
)
{
auto
k
=
gen_random_string
(
16
);
// half of the entries will be put using bulk
auto
v
=
gen_random_string
(
3
+
i
*
(
max_value_size
-
3
)
/
num_keys
);
DB
.
put
(
k
,
v
);
std
::
cout
<<
"Inserted "
<<
k
<<
"
\t
===> "
<<
v
<<
std
::
endl
;
reference
[
k
]
=
v
;
keys
.
push_back
(
k
);
}
std
::
cout
<<
"Successfuly inserted "
<<
num_keys
<<
" keys"
<<
std
::
endl
;
/* **** get keys **** */
for
(
unsigned
i
=
0
;
i
<
num_keys
;
i
++
)
{
auto
k
=
keys
[
rand
()
%
keys
.
size
()];
size_t
value_size
=
max_value_size
;
std
::
vector
<
char
>
v
(
max_value_size
);
DB
.
get
(
k
,
v
);
std
::
string
vstring
((
char
*
)(
v
.
data
()));
std
::
cout
<<
"Got "
<<
k
<<
" ===> "
<<
vstring
<<
std
::
endl
;
if
(
vstring
!=
reference
[
k
])
{
throw
std
::
runtime_error
(
"DB.get() returned a value different from the reference"
);
}
}
/* erase keys */
for
(
unsigned
i
=
0
;
i
<
num_keys
;
i
++
)
{
DB
.
erase
(
keys
[
i
]);
}
return
0
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment