From d0fcd73c42bd376cef448945805d72ec98b3456e Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Sat, 12 Oct 2019 16:22:16 +0800 Subject: [PATCH] test/crimson: v2 lossless policy test markdown Signed-off-by: Yingxin Cheng --- src/test/crimson/test_messenger.cc | 102 +++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/src/test/crimson/test_messenger.cc b/src/test/crimson/test_messenger.cc index 3d6aeb6744d3c..5d8425ebb6475 100644 --- a/src/test/crimson/test_messenger.cc +++ b/src/test/crimson/test_messenger.cc @@ -3016,6 +3016,104 @@ test_v2_stateless_server(FailoverTest& test) { }); } +seastar::future<> +test_v2_lossless_client(FailoverTest& test) { + return test.run_suite( + "test_v2_lossless_client", + TestInterceptor(), + policy_t::lossless_client, + policy_t::stateful_server, + [&test] (FailoverSuite& suite) { + return seastar::futurize_apply([&suite] { + logger().info("-- 0 --"); + logger().info("[Test] setup connection..."); + return suite.connect_peer(); + }).then([&test] { + return test.send_bidirectional(); + }).then([&suite] { + return suite.wait_results(1); + }).then([] (ConnResults& results) { + results[0].assert_state_at(conn_state_t::established); + results[0].assert_connect(1, 1, 0, 1); + results[0].assert_accept(0, 0, 0, 0); + results[0].assert_reset(0, 0); + }).then([&suite] { + logger().info("-- 1 --"); + logger().info("[Test] client markdown..."); + return suite.markdown(); + }).then([&suite] { + return suite.connect_peer(); + }).then([&suite] { + return suite.send_peer(); + }).then([&suite] { + return suite.wait_results(2); + }).then([] (ConnResults& results) { + results[0].assert_state_at(conn_state_t::closed); + results[0].assert_connect(1, 1, 0, 1); + results[0].assert_accept(0, 0, 0, 0); + results[0].assert_reset(0, 0); + results[1].assert_state_at(conn_state_t::established); + results[1].assert_connect(1, 1, 0, 1); + results[1].assert_accept(0, 0, 0, 0); + results[1].assert_reset(0, 0); + // TODO: further tests + logger().info("-- 2 --"); + logger().info("[Test] server markdown..."); + logger().info("-- 3 --"); + logger().info("[Test] client reconnect..."); + }); + }); +} + +seastar::future<> +test_v2_stateful_server(FailoverTest& test) { + return test.run_suite( + "test_v2_stateful_server", + TestInterceptor(), + policy_t::stateful_server, + policy_t::lossless_client, + [&test] (FailoverSuite& suite) { + return seastar::futurize_apply([&test] { + logger().info("-- 0 --"); + logger().info("[Test] setup connection..."); + return test.peer_connect_me(); + }).then([&test] { + return test.send_bidirectional(); + }).then([&suite] { + return suite.wait_results(1); + }).then([] (ConnResults& results) { + results[0].assert_state_at(conn_state_t::established); + results[0].assert_connect(0, 0, 0, 0); + results[0].assert_accept(1, 1, 0, 1); + results[0].assert_reset(0, 0); + }).then([&test] { + logger().info("-- 1 --"); + logger().info("[Test] client markdown..."); + return test.markdown_peer(); + }).then([&test] { + return test.peer_connect_me(); + }).then([&test] { + return test.peer_send_me(); + }).then([&suite] { + return suite.wait_results(2); + }).then([] (ConnResults& results) { + results[0].assert_state_at(conn_state_t::established); + results[0].assert_connect(0, 0, 0, 0); + results[0].assert_accept(1, 1, 0, 2); + results[0].assert_reset(0, 1); + results[1].assert_state_at(conn_state_t::replaced); + results[1].assert_connect(0, 0, 0, 0); + results[1].assert_accept(1, 1, 0, 0); + results[1].assert_reset(0, 0); + // TODO: further tests + logger().info("-- 2 --"); + logger().info("[Test] server markdown..."); + logger().info("-- 3 --"); + logger().info("[Test] client reconnect..."); + }); + }); +} + seastar::future<> test_v2_protocol(entity_addr_t test_addr = entity_addr_t(), entity_addr_t cmd_peer_addr = entity_addr_t()) { @@ -3111,6 +3209,10 @@ test_v2_protocol(entity_addr_t test_addr = entity_addr_t(), return test_v2_lossy_client(*test); }).then([test] { return test_v2_stateless_server(*test); + }).then([test] { + return test_v2_lossless_client(*test); + }).then([test] { + return test_v2_stateful_server(*test); }).finally([test] { return test->shutdown().then([test] {}); }); -- 2.39.5