File tree 1 file changed +21
-1
lines changed
Filter options
1 file changed +21
-1
lines changed
Original file line number Diff line number Diff line change 1
1
#include " gtest/gtest.h"
2
2
3
+ #include < future>
4
+
3
5
#include " rpc/client.h"
4
6
#include " rpc/server.h"
5
7
#include " rpc/this_server.h"
@@ -24,7 +26,7 @@ class this_server_test : public testing::Test {
24
26
rpc::client c2;
25
27
};
26
28
27
- TEST_F (this_server_test, stop ) {
29
+ TEST_F (this_server_test, stop_async ) {
28
30
s.bind (" stop_server" , []() { rpc::this_server ().stop (); });
29
31
s.async_run ();
30
32
c1.call (" stop_server" );
@@ -35,3 +37,21 @@ TEST_F(this_server_test, stop) {
35
37
EXPECT_EQ (c2.get_connection_state (),
36
38
client::connection_state::disconnected);
37
39
}
40
+
41
+ TEST_F (this_server_test, stop_sync) {
42
+ s.bind (" stop_server" , []() { rpc::this_server ().stop (); });
43
+
44
+ auto handle = std::async (std::launch::async, [this ]() {
45
+ std::this_thread::sleep_for (std::chrono::milliseconds (100 ));
46
+ c1.call (" stop_server" );
47
+ std::this_thread::sleep_for (std::chrono::milliseconds (100 ));
48
+ });
49
+
50
+ s.run ();
51
+ handle.get ();
52
+
53
+ EXPECT_EQ (c1.get_connection_state (),
54
+ client::connection_state::disconnected);
55
+ EXPECT_EQ (c2.get_connection_state (),
56
+ client::connection_state::disconnected);
57
+ }
You can’t perform that action at this time.
0 commit comments