Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
actor-incubator
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
cpp-libs
actor-incubator
Commits
674bb331
Commit
674bb331
authored
Jun 03, 2020
by
Jakob Otto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix resolve test
parent
71a965d3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
31 deletions
+28
-31
libcaf_net/caf/net/backend/tcp.hpp
libcaf_net/caf/net/backend/tcp.hpp
+1
-1
libcaf_net/caf/net/middleman.hpp
libcaf_net/caf/net/middleman.hpp
+0
-1
libcaf_net/test/net/backend/tcp.cpp
libcaf_net/test/net/backend/tcp.cpp
+27
-29
No files found.
libcaf_net/caf/net/backend/tcp.hpp
View file @
674bb331
...
...
@@ -85,7 +85,7 @@ public:
return
err
;
}
mpx
->
register_reading
(
mgr
);
peers_
.
emplace
(
peer_id
,
std
::
move
(
mgr
)
);
peers_
[
peer_id
]
=
std
::
move
(
mgr
);
return
peers_
[
peer_id
];
}
...
...
libcaf_net/caf/net/middleman.hpp
View file @
674bb331
...
...
@@ -89,7 +89,6 @@ public:
template
<
class
Handle
=
actor
>
expected
<
Handle
>
remote_actor
(
const
uri
&
locator
)
{
// TODO: Use function view?
scoped_actor
self
{
sys_
};
resolve
(
locator
,
self
);
Handle
handle
;
...
...
libcaf_net/test/net/backend/tcp.cpp
View file @
674bb331
...
...
@@ -68,9 +68,7 @@ struct config : actor_system_config {
class
planet_driver
{
public:
virtual
~
planet_driver
()
{
// nop
}
virtual
~
planet_driver
()
=
default
;
virtual
bool
handle_io_event
()
=
0
;
};
...
...
@@ -100,7 +98,8 @@ private:
struct
fixture
:
host_fixture
,
planet_driver
{
fixture
()
:
earth
(
*
this
),
mars
(
*
this
)
{
run
();
earth
.
run
();
mars
.
run
();
CAF_REQUIRE_EQUAL
(
earth
.
mpx
->
num_socket_managers
(),
2
);
CAF_REQUIRE_EQUAL
(
mars
.
mpx
->
num_socket_managers
(),
2
);
}
...
...
@@ -109,11 +108,6 @@ struct fixture : host_fixture, planet_driver {
return
earth
.
mpx
->
poll_once
(
false
)
||
mars
.
mpx
->
poll_once
(
false
);
}
void
set_thread_id
()
{
earth
.
mpx
->
set_thread_id
();
mars
.
mpx
->
set_thread_id
();
}
void
run
()
{
earth
.
run
();
}
...
...
@@ -134,9 +128,14 @@ CAF_TEST(doorman accept) {
auth
.
port
=
backend
->
port
();
CAF_MESSAGE
(
"trying to connect to earth at "
<<
CAF_ARG
(
auth
));
auto
sock
=
make_connected_tcp_stream_socket
(
auth
);
run
();
CAF_CHECK
(
sock
);
auto
guard
=
make_socket_guard
(
*
sock
);
int
runs
=
0
;
while
(
earth
.
mpx
->
num_socket_managers
()
<
3
)
{
if
(
++
runs
>=
5
)
CAF_FAIL
(
"doorman did not create endpoint_manager"
);
run
();
}
CAF_CHECK_EQUAL
(
earth
.
mpx
->
num_socket_managers
(),
3
);
}
...
...
@@ -158,21 +157,21 @@ CAF_TEST(connect) {
CAF_TEST
(
publish
)
{
auto
dummy
=
earth
.
sys
.
spawn
(
dummy_actor
);
auto
path
=
"
name/
dummy"
s
;
auto
path
=
"dummy"
s
;
CAF_MESSAGE
(
"publishing actor "
<<
CAF_ARG
(
path
));
earth
.
mm
.
publish
(
dummy
,
path
);
CAF_MESSAGE
(
"check registry for "
<<
CAF_ARG
(
path
));
CAF_CHECK_NOT_EQUAL
(
earth
.
sys
.
registry
().
get
(
path
),
nullptr
);
}
CAF_TEST
(
re
mote_actor
)
{
CAF_TEST
(
re
solve
)
{
using
std
::
chrono
::
milliseconds
;
using
std
::
chrono
::
seconds
;
auto
sockets
=
unbox
(
make_stream_socket_pair
());
auto
earth_be
=
reinterpret_cast
<
net
::
backend
::
tcp
*>
(
earth
.
mm
.
backend
(
"tcp"
));
earth_be
->
emplace
(
mars
.
id
(),
sockets
.
first
);
CAF_CHECK
(
earth_be
->
emplace
(
mars
.
id
(),
sockets
.
first
)
);
auto
mars_be
=
reinterpret_cast
<
net
::
backend
::
tcp
*>
(
mars
.
mm
.
backend
(
"tcp"
));
mars_be
->
emplace
(
earth
.
id
(),
sockets
.
second
);
CAF_CHECK
(
mars_be
->
emplace
(
earth
.
id
(),
sockets
.
second
)
);
handle_io_event
();
CAF_CHECK_EQUAL
(
earth
.
mpx
->
num_socket_managers
(),
3
);
CAF_CHECK_EQUAL
(
mars
.
mpx
->
num_socket_managers
(),
3
);
...
...
@@ -180,21 +179,20 @@ CAF_TEST(remote_actor) {
earth
.
mm
.
publish
(
dummy
,
"dummy"
s
);
auto
locator
=
unbox
(
make_uri
(
"tcp://earth/name/dummy"
s
));
CAF_MESSAGE
(
"resolve "
<<
CAF_ARG
(
locator
));
bool
running
=
true
;
auto
f
=
[
&
]()
{
set_thread_id
();
while
(
running
)
{
handle_io_event
();
std
::
this_thread
::
sleep_for
(
milliseconds
(
100
));
}
};
std
::
thread
t
{
f
};
auto
proxy
=
unbox
(
mars
.
mm
.
remote_actor
(
locator
));
CAF_MESSAGE
(
"resolved actor"
);
CAF_CHECK
(
proxy
!=
nullptr
);
running
=
false
;
t
.
join
();
set_thread_id
();
mars
.
mm
.
resolve
(
locator
,
mars
.
self
);
mars
.
run
();
earth
.
run
();
mars
.
run
();
mars
.
self
->
receive
(
[](
strong_actor_ptr
&
ptr
,
const
std
::
set
<
std
::
string
>&
)
{
CAF_MESSAGE
(
"resolved actor!"
);
CAF_CHECK_NOT_EQUAL
(
ptr
,
nullptr
);
},
[](
const
error
&
err
)
{
CAF_FAIL
(
"got error while resolving: "
<<
CAF_ARG
(
err
));
},
after
(
std
::
chrono
::
seconds
(
0
))
>>
[]
{
CAF_FAIL
(
"manager did not respond with a proxy."
);
});
}
CAF_TEST_FIXTURE_SCOPE_END
()
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