Skip to content

Commit bb4db51

Browse files
committed
f
1 parent c0bc3a6 commit bb4db51

File tree

5 files changed

+419
-17
lines changed

5 files changed

+419
-17
lines changed

include/boost/redis/connection.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ class basic_connection {
667667
* @param token Completion token.
668668
*/
669669
template <class CompletionToken = asio::default_completion_token_t<executor_type>>
670-
BOOST_DEPRECATED("Please use async_receive2 instead.")
670+
//BOOST_DEPRECATED("Please use async_receive2 instead.")
671671
auto async_receive(CompletionToken&& token = {})
672672
{
673673
return impl_->receive_channel_.async_receive(std::forward<CompletionToken>(token));
@@ -727,7 +727,7 @@ class basic_connection {
727727
* @param ec Contains the error if any occurred.
728728
* @returns The number of bytes read from the socket.
729729
*/
730-
BOOST_DEPRECATED("Please, use async_receive2 instead.")
730+
//BOOST_DEPRECATED("Please, use async_receive2 instead.")
731731
std::size_t receive(system::error_code& ec)
732732
{
733733
return impl_->receive(ec);

include/boost/redis/response.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ using generic_flat_response = adapter::result<generic_flat_response_value>;
8181
* @param r The response to modify.
8282
* @param ec Will be populated in case of error.
8383
*/
84-
BOOST_DEPRECATED("This function is not needed anymore to consume server pushes.")
84+
//BOOST_DEPRECATED("This function is not needed anymore to consume server pushes.")
8585
void consume_one(generic_response& r, system::error_code& ec);
8686

8787
/**

test/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ make_test(test_run)
5555
make_test(test_conn_run_cancel)
5656
make_test(test_conn_check_health)
5757
make_test(test_conn_exec)
58-
make_test(test_conn_push)
58+
make_test(test_conn_push) # Test deprecated async_receive
59+
make_test(test_conn_push2)
5960
make_test(test_conn_monitor)
6061
make_test(test_conn_reconnect)
6162
make_test(test_conn_exec_cancel)

test/test_conn_push.cpp

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ using boost::redis::connection;
3030
using boost::system::error_code;
3131
using boost::redis::request;
3232
using boost::redis::response;
33-
using boost::redis::generic_flat_response;
3433
using boost::redis::ignore;
3534
using boost::redis::ignore_t;
3635
using boost::system::error_code;
@@ -79,8 +78,8 @@ BOOST_AUTO_TEST_CASE(receives_push_waiting_resps)
7978

8079
run(conn, make_test_config(), {});
8180

82-
conn->async_receive2([&, conn](error_code ec) {
83-
std::cout << "async_receive2" << std::endl;
81+
conn->async_receive([&, conn](error_code ec, std::size_t) {
82+
std::cout << "async_receive" << std::endl;
8483
BOOST_TEST(ec == error_code());
8584
push_received = true;
8685
conn->cancel();
@@ -99,12 +98,10 @@ BOOST_AUTO_TEST_CASE(push_received1)
9998
net::io_context ioc;
10099
auto conn = std::make_shared<connection>(ioc);
101100

102-
generic_flat_response resp;
103-
conn->set_receive_response(resp);
104-
105101
// Trick: Uses SUBSCRIBE because this command has no response or
106102
// better said, its response is a server push, which is what we
107-
// want to test.
103+
// want to test. We send two because we want to test both
104+
// async_receive and receive.
108105
request req;
109106
req.push("SUBSCRIBE", "channel1");
110107
req.push("SUBSCRIBE", "channel2");
@@ -117,13 +114,25 @@ BOOST_AUTO_TEST_CASE(push_received1)
117114
BOOST_TEST(ec == error_code());
118115
});
119116

120-
conn->async_receive2([&, conn](error_code ec) {
117+
conn->async_receive([&, conn](error_code ec, std::size_t) {
121118
push_received = true;
122-
std::cout << "async_receive2" << std::endl;
119+
std::cout << "(1) async_receive" << std::endl;
123120

124121
BOOST_TEST(ec == error_code());
125122

126-
BOOST_CHECK_EQUAL(resp.value().get_total_msgs(), 2u);
123+
// Receives the second push synchronously.
124+
error_code ec2;
125+
std::size_t res = 0;
126+
res = conn->receive(ec2);
127+
BOOST_TEST(!ec2);
128+
BOOST_TEST(res != std::size_t(0));
129+
130+
// Tries to receive a third push synchronously.
131+
ec2 = {};
132+
res = conn->receive(ec2);
133+
BOOST_CHECK_EQUAL(
134+
ec2,
135+
boost::redis::make_error_code(boost::redis::error::sync_receive_push_failed));
127136

128137
conn->cancel();
129138
});
@@ -155,7 +164,7 @@ BOOST_AUTO_TEST_CASE(push_filtered_out)
155164
BOOST_TEST(ec == error_code());
156165
});
157166

158-
conn->async_receive2([&, conn](error_code ec) {
167+
conn->async_receive([&, conn](error_code ec, std::size_t) {
159168
push_received = true;
160169
BOOST_TEST(ec == error_code());
161170
conn->cancel(operation::reconnection);
@@ -203,7 +212,7 @@ BOOST_AUTO_TEST_CASE(test_push_adapter)
203212

204213
bool push_received = false, exec_finished = false, run_finished = false;
205214

206-
conn->async_receive2([&, conn](error_code ec) {
215+
conn->async_receive([&, conn](error_code ec, std::size_t) {
207216
BOOST_CHECK_EQUAL(ec, boost::asio::experimental::error::channel_cancelled);
208217
push_received = true;
209218
});
@@ -231,7 +240,7 @@ BOOST_AUTO_TEST_CASE(test_push_adapter)
231240

232241
void launch_push_consumer(std::shared_ptr<connection> conn)
233242
{
234-
conn->async_receive2([conn](error_code ec) {
243+
conn->async_receive([conn](error_code ec, std::size_t) {
235244
if (ec) {
236245
BOOST_TEST(ec == net::experimental::error::channel_cancelled);
237246
return;

0 commit comments

Comments
 (0)