Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
pistache
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
Libraries
pistache
Commits
c05ae942
Unverified
Commit
c05ae942
authored
Dec 30, 2018
by
Dennis Jenkins
Committed by
GitHub
Dec 30, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #397 from knowledge4igor/use_ephemeral_port_in_several_tests
Use ephemeral ports in several tests
parents
5cf1bb19
4b4c8e34
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
57 additions
and
24 deletions
+57
-24
tests/cookie_test_3.cc
tests/cookie_test_3.cc
+10
-4
tests/http_client_test.cc
tests/http_client_test.cc
+27
-12
tests/http_server_test.cc
tests/http_server_test.cc
+20
-8
No files found.
tests/cookie_test_3.cc
View file @
c05ae942
...
...
@@ -25,7 +25,7 @@ struct CookieHandler : public Http::Handler {
};
TEST
(
http_client_test
,
one_client_with_one_request_with_onecookie
)
{
const
std
::
string
address
=
"localhost:9086"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
...
...
@@ -34,6 +34,9 @@ TEST(http_client_test, one_client_with_one_request_with_onecookie) {
server
.
setHandler
(
Http
::
make_handler
<
CookieHandler
>
());
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
Http
::
Client
client
;
client
.
init
();
...
...
@@ -41,7 +44,7 @@ TEST(http_client_test, one_client_with_one_request_with_onecookie) {
const
std
::
string
name
=
"FOO"
;
const
std
::
string
value
=
"bar"
;
auto
cookie
=
Http
::
Cookie
(
name
,
value
);
auto
rb
=
client
.
get
(
address
).
cookie
(
cookie
);
auto
rb
=
client
.
get
(
server_
address
).
cookie
(
cookie
);
auto
response
=
rb
.
send
();
Http
::
CookieJar
cj
;
...
...
@@ -63,7 +66,7 @@ TEST(http_client_test, one_client_with_one_request_with_onecookie) {
}
TEST
(
http_client_test
,
one_client_with_one_request_with_several_cookies
)
{
const
std
::
string
address
=
"localhost:9088"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
...
...
@@ -72,6 +75,9 @@ TEST(http_client_test, one_client_with_one_request_with_several_cookies) {
server
.
setHandler
(
Http
::
make_handler
<
CookieHandler
>
());
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
Http
::
Client
client
;
client
.
init
();
...
...
@@ -85,7 +91,7 @@ TEST(http_client_test, one_client_with_one_request_with_several_cookies) {
const
std
::
string
name3
=
"Key"
;
const
std
::
string
value3
=
"value"
;
auto
cookie3
=
Http
::
Cookie
(
name3
,
value3
);
auto
rb
=
client
.
get
(
address
).
cookie
(
cookie1
).
cookie
(
cookie2
).
cookie
(
cookie3
);
auto
rb
=
client
.
get
(
server_
address
).
cookie
(
cookie1
).
cookie
(
cookie2
).
cookie
(
cookie3
);
auto
response
=
rb
.
send
();
std
::
unordered_map
<
std
::
string
,
std
::
string
>
cookiesStorages
;
...
...
tests/http_client_test.cc
View file @
c05ae942
...
...
@@ -32,7 +32,7 @@ struct DelayHandler : public Http::Handler
TEST
(
http_client_test
,
one_client_with_one_request
)
{
const
std
::
string
address
=
"localhost:9100"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
...
...
@@ -41,10 +41,13 @@ TEST(http_client_test, one_client_with_one_request)
server
.
setHandler
(
Http
::
make_handler
<
HelloHandler
>
());
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
Http
::
Client
client
;
client
.
init
();
auto
rb
=
client
.
get
(
address
);
auto
rb
=
client
.
get
(
server_
address
);
auto
response
=
rb
.
send
();
bool
done
=
false
;
response
.
then
([
&
](
Http
::
Response
rsp
)
...
...
@@ -63,7 +66,7 @@ TEST(http_client_test, one_client_with_one_request)
}
TEST
(
http_client_test
,
one_client_with_multiple_requests
)
{
const
std
::
string
address
=
"localhost:9101"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
...
...
@@ -72,6 +75,9 @@ TEST(http_client_test, one_client_with_multiple_requests) {
server
.
setHandler
(
Http
::
make_handler
<
HelloHandler
>
());
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
Http
::
Client
client
;
client
.
init
();
...
...
@@ -79,7 +85,7 @@ TEST(http_client_test, one_client_with_multiple_requests) {
const
int
RESPONSE_SIZE
=
3
;
int
response_counter
=
0
;
auto
rb
=
client
.
get
(
address
);
auto
rb
=
client
.
get
(
server_
address
);
for
(
int
i
=
0
;
i
<
RESPONSE_SIZE
;
++
i
)
{
auto
response
=
rb
.
send
();
response
.
then
([
&
](
Http
::
Response
rsp
)
{
...
...
@@ -101,7 +107,7 @@ TEST(http_client_test, one_client_with_multiple_requests) {
}
TEST
(
http_client_test
,
multiple_clients_with_one_request
)
{
const
std
::
string
address
=
"localhost:9102"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
...
...
@@ -110,6 +116,9 @@ TEST(http_client_test, multiple_clients_with_one_request) {
server
.
setHandler
(
Http
::
make_handler
<
HelloHandler
>
());
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
const
int
CLIENT_SIZE
=
3
;
Http
::
Client
client1
;
client1
.
init
();
...
...
@@ -121,21 +130,21 @@ TEST(http_client_test, multiple_clients_with_one_request) {
std
::
vector
<
Async
::
Promise
<
Http
::
Response
>>
responses
;
std
::
atomic
<
int
>
response_counter
(
0
);
auto
rb1
=
client1
.
get
(
address
);
auto
rb1
=
client1
.
get
(
server_
address
);
auto
response1
=
rb1
.
send
();
response1
.
then
([
&
](
Http
::
Response
rsp
)
{
if
(
rsp
.
code
()
==
Http
::
Code
::
Ok
)
++
response_counter
;
},
Async
::
IgnoreException
);
responses
.
push_back
(
std
::
move
(
response1
));
auto
rb2
=
client2
.
get
(
address
);
auto
rb2
=
client2
.
get
(
server_
address
);
auto
response2
=
rb2
.
send
();
response2
.
then
([
&
](
Http
::
Response
rsp
)
{
if
(
rsp
.
code
()
==
Http
::
Code
::
Ok
)
++
response_counter
;
},
Async
::
IgnoreException
);
responses
.
push_back
(
std
::
move
(
response2
));
auto
rb3
=
client3
.
get
(
address
);
auto
rb3
=
client3
.
get
(
server_
address
);
auto
response3
=
rb3
.
send
();
response3
.
then
([
&
](
Http
::
Response
rsp
)
{
if
(
rsp
.
code
()
==
Http
::
Code
::
Ok
)
...
...
@@ -158,7 +167,7 @@ TEST(http_client_test, multiple_clients_with_one_request) {
TEST
(
http_client_test
,
timeout_reject
)
{
const
std
::
string
address
=
"localhost:9103"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
...
...
@@ -167,10 +176,13 @@ TEST(http_client_test, timeout_reject)
server
.
setHandler
(
Http
::
make_handler
<
DelayHandler
>
());
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
Http
::
Client
client
;
client
.
init
();
auto
rb
=
client
.
get
(
address
).
timeout
(
std
::
chrono
::
milliseconds
(
1000
));
auto
rb
=
client
.
get
(
server_
address
).
timeout
(
std
::
chrono
::
milliseconds
(
1000
));
auto
response
=
rb
.
send
();
bool
is_reject
=
false
;
response
.
then
([
&
is_reject
](
Http
::
Response
/*rsp*/
)
...
...
@@ -193,7 +205,7 @@ TEST(http_client_test, timeout_reject)
TEST
(
http_client_test
,
one_client_with_multiple_requests_and_one_connection_per_host
)
{
const
std
::
string
address
=
"localhost:9104"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
...
...
@@ -202,6 +214,9 @@ TEST(http_client_test, one_client_with_multiple_requests_and_one_connection_per_
server
.
setHandler
(
Http
::
make_handler
<
HelloHandler
>
());
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
Http
::
Client
client
;
auto
opts
=
Http
::
Client
::
options
().
maxConnectionsPerHost
(
1
).
threads
(
2
);
client
.
init
(
opts
);
...
...
@@ -210,7 +225,7 @@ TEST(http_client_test, one_client_with_multiple_requests_and_one_connection_per_
const
int
RESPONSE_SIZE
=
6
;
std
::
atomic
<
int
>
response_counter
(
0
);
auto
rb
=
client
.
get
(
address
);
auto
rb
=
client
.
get
(
server_
address
);
for
(
int
i
=
0
;
i
<
RESPONSE_SIZE
;
++
i
)
{
auto
response
=
rb
.
send
();
...
...
tests/http_server_test.cc
View file @
c05ae942
...
...
@@ -72,9 +72,9 @@ int clientLogicFunc(int response_size, const std::string& server_page, int wait_
}
TEST
(
http_server_test
,
client_disconnection_on_timeout_from_single_threaded_server
)
{
const
std
::
string
server_address
=
"localhost:9095"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
server_
address
);
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
auto
server_opts
=
Http
::
Endpoint
::
options
().
flags
(
flags
);
server
.
init
(
server_opts
);
...
...
@@ -82,6 +82,9 @@ TEST(http_server_test, client_disconnection_on_timeout_from_single_threaded_serv
server
.
setHandler
(
Http
::
make_handler
<
HelloHandlerWithDelay
>
(
SIX_SECONDS_DELAY
));
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
const
int
CLIENT_REQUEST_SIZE
=
1
;
int
counter
=
clientLogicFunc
(
CLIENT_REQUEST_SIZE
,
server_address
,
SIX_SECONDS_DELAY
);
...
...
@@ -91,9 +94,9 @@ TEST(http_server_test, client_disconnection_on_timeout_from_single_threaded_serv
}
TEST
(
http_server_test
,
client_multiple_requests_disconnection_on_timeout_from_single_threaded_server
)
{
const
std
::
string
server_address
=
"localhost:9096"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
server_
address
);
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
auto
server_opts
=
Http
::
Endpoint
::
options
().
flags
(
flags
);
server
.
init
(
server_opts
);
...
...
@@ -102,6 +105,9 @@ TEST(http_server_test, client_multiple_requests_disconnection_on_timeout_from_si
server
.
setHandler
(
Http
::
make_handler
<
HelloHandlerWithDelay
>
(
SIX_SECONDS_DELAY
));
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
const
int
CLIENT_REQUEST_SIZE
=
3
;
int
counter
=
clientLogicFunc
(
CLIENT_REQUEST_SIZE
,
server_address
,
SIX_SECONDS_DELAY
);
...
...
@@ -111,15 +117,18 @@ TEST(http_server_test, client_multiple_requests_disconnection_on_timeout_from_si
}
TEST
(
http_server_test
,
multiple_client_with_requests_to_multithreaded_server
)
{
const
std
::
string
server_address
=
"localhost:9097"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
server_
address
);
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
auto
server_opts
=
Http
::
Endpoint
::
options
().
flags
(
flags
).
threads
(
3
);
server
.
init
(
server_opts
);
server
.
setHandler
(
Http
::
make_handler
<
HelloHandlerWithDelay
>
());
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
const
int
SIX_SECONDS_TIMOUT
=
6
;
const
int
FIRST_CLIENT_REQUEST_SIZE
=
4
;
std
::
future
<
int
>
result1
(
std
::
async
(
clientLogicFunc
,
...
...
@@ -142,9 +151,9 @@ TEST(http_server_test, multiple_client_with_requests_to_multithreaded_server) {
}
TEST
(
http_server_test
,
multiple_client_with_different_requests_to_multithreaded_server
)
{
const
std
::
string
server_address
=
"localhost:9098"
;
const
Pistache
::
Address
address
(
"localhost"
,
Pistache
::
Port
(
0
))
;
Http
::
Endpoint
server
(
server_
address
);
Http
::
Endpoint
server
(
address
);
auto
flags
=
Tcp
::
Options
::
InstallSignalHandler
|
Tcp
::
Options
::
ReuseAddr
;
auto
server_opts
=
Http
::
Endpoint
::
options
().
flags
(
flags
).
threads
(
3
);
server
.
init
(
server_opts
);
...
...
@@ -152,6 +161,9 @@ TEST(http_server_test, multiple_client_with_different_requests_to_multithreaded_
server
.
setHandler
(
Http
::
make_handler
<
SlowHandlerOnSpecialPage
>
(
SIX_SECONDS_DELAY
));
server
.
serveThreaded
();
const
std
::
string
server_address
=
"localhost:"
+
server
.
getPort
().
toString
();
std
::
cout
<<
"Server address: "
<<
server_address
<<
"
\n
"
;
const
int
FIRST_CLIENT_REQUEST_SIZE
=
1
;
std
::
future
<
int
>
result1
(
std
::
async
(
clientLogicFunc
,
FIRST_CLIENT_REQUEST_SIZE
,
...
...
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