From 406fbf76f7f0366ea85a5fc521bfc197bc32d833 Mon Sep 17 00:00:00 2001 From: Gleb Natapov Date: Sun, 22 Mar 2015 11:24:42 +0200 Subject: [PATCH] rpc: add no_wait and client_info tests --- tests/rpc.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/rpc.cc b/tests/rpc.cc index 4d7c8d9225..4a11e8cfb3 100644 --- a/tests/rpc.cc +++ b/tests/rpc.cc @@ -94,9 +94,11 @@ int main(int ac, char** av) { auto test2 = myrpc.register_handler(2, [](int a, int b){ print("test2 got %d %d\n", a, b); return make_ready_future(a+b); }); auto test3 = myrpc.register_handler(3, [](double x){ print("test3 got %f\n", x); return sin(x); }); auto test4 = myrpc.register_handler(4, [](){ print("test4 throw!\n"); throw std::runtime_error("exception!"); }); + auto test5 = myrpc.register_handler(5, [](){ print("test5 no wait\n"); return rpc::no_wait; }); + auto test6 = myrpc.register_handler(6, [](const rpc::client_info& info, int x){ print("test6 client %s, %d\n", inet_ntoa(info.addr.as_posix_sockaddr_in().sin_addr), x); }); if (config.count("server")) { std::cout << "client" << std::endl; - auto test5 = myrpc.make_client(5); + auto test7 = myrpc.make_client(7); client = std::make_unique::client>(myrpc, ipv4_addr{config["server"].as()}); @@ -114,19 +116,21 @@ int main(int ac, char** av) { print("test4 %s\n", x.what()); } }); - f = test5(*client, 5, 6).then([] (long r) { print("test4 got %ld\n", r); }); + test5(*client).then([] { print("test5 no wait ended\n"); }); + test6(*client, 1).then([] { print("test6 ended\n"); }); + f = test7(*client, 5, 6).then([] (long r) { print("test7 got %ld\n", r); }); } f.finally([] { engine().exit(0); }); } else { std::cout << "server on port " << port << std::endl; - myrpc.register_handler(5, [](long a, long b) mutable { + myrpc.register_handler(7, [](long a, long b) mutable { auto p = make_lw_shared>(); auto t = make_lw_shared>(); - print("test5 got %ld %ld\n", a, b); + print("test7 got %ld %ld\n", a, b); auto f = p->get_future().then([a, b, t] { - print("test5 calc res\n"); + print("test7 calc res\n"); return a - b; }); t->set_callback([p = std::move(p)] () mutable { p->set_value(); });