File tree 4 files changed +29
-7
lines changed
4 files changed +29
-7
lines changed Original file line number Diff line number Diff line change @@ -1526,3 +1526,17 @@ TEST(coroutine_socket, shutdown) {
1526
1526
ASSERT_ERREQ (ENOTCONN);
1527
1527
});
1528
1528
}
1529
+
1530
+ TEST (coroutine_socket, recv_packet) {
1531
+ coroutine::run ([](void *arg) {
1532
+ Socket sock (SW_SOCK_TCP);
1533
+ ASSERT_TRUE (sock.connect (TEST_HTTP_DOMAIN, 80 ));
1534
+ auto req = swoole::test::http_get_request (TEST_HTTP_DOMAIN, " /" );
1535
+ ASSERT_EQ (sock.send (req.c_str (), req.length ()), req.length ());
1536
+ ASSERT_TRUE (sock.check_liveness ());
1537
+ auto n = sock.recv_packet ();
1538
+ ASSERT_GT (n, 0 );
1539
+ auto buf = sock.get_read_buffer ();
1540
+ ASSERT_TRUE (buf->contains (TEST_HTTP_EXPECT));
1541
+ });
1542
+ }
Original file line number Diff line number Diff line change 24
24
#include < openssl/evp.h>
25
25
#include < openssl/buffer.h>
26
26
27
- using swoole::String;
28
27
using swoole::SSLContext;
28
+ using swoole::String;
29
29
30
30
TEST (ssl, destroy) {
31
31
swoole_ssl_init ();
@@ -38,7 +38,8 @@ TEST(ssl, get_error) {
38
38
const char *error_str = swoole_ssl_get_error ();
39
39
EXPECT_NE (error_str, nullptr );
40
40
String str (error_str);
41
- ASSERT_TRUE (str.contains (" SSL routines:func(195):reason(134)" ));
41
+ DEBUG () << str.to_std_string () << std::endl;
42
+ ASSERT_TRUE (str.contains (" reason(134)" ));
42
43
}
43
44
44
45
TEST (ssl, password) {
Original file line number Diff line number Diff line change @@ -1941,7 +1941,7 @@ TEST(server, reactor_thread_pipe_writable) {
1941
1941
port->protocol .package_max_length = 8 * 1024 * 1024 ;
1942
1942
network::Stream::set_protocol (&port->protocol );
1943
1943
1944
- swoole:: Mutex lock (swoole:: Mutex::PROCESS_SHARED);
1944
+ Mutex lock (Mutex::PROCESS_SHARED);
1945
1945
lock.lock ();
1946
1946
1947
1947
ASSERT_EQ (serv.create (), SW_OK);
@@ -1986,8 +1986,11 @@ TEST(server, reactor_thread_pipe_writable) {
1986
1986
1987
1987
serv.onReceive = [&](Server *serv, RecvData *req) -> int {
1988
1988
uint32_t len = htonl (rdata.length );
1989
- serv->send (req->info .fd , &len, sizeof (len));
1990
- serv->send (req->info .fd , rdata.str , rdata.length );
1989
+ EXPECT_TRUE (req->info .flags & SW_EVENT_DATA_OBJ_PTR);
1990
+ EXPECT_TRUE (serv->send (req->info .fd , &len, sizeof (len)));
1991
+ EXPECT_TRUE (serv->send (req->info .fd , rdata.str , rdata.length ));
1992
+ EXPECT_MEMEQ (req->data + 4 , rdata.str , rdata.length );
1993
+ EXPECT_NE (serv->get_worker_message_bus ()->move_packet (), nullptr );
1991
1994
return SW_OK;
1992
1995
};
1993
1996
Original file line number Diff line number Diff line change @@ -97,14 +97,18 @@ class Socket {
97
97
return send (buf.c_str (), buf.length ());
98
98
}
99
99
100
+ /* *
101
+ * The read()/write()/recvmsg()/sendmsg() functions currently does not support SSL
102
+ */
100
103
ssize_t read (void *__buf, size_t __n);
101
104
ssize_t write (const void *__buf, size_t __n);
105
+ ssize_t recvmsg (msghdr *msg, int flags);
106
+ ssize_t sendmsg (const msghdr *msg, int flags);
107
+
102
108
ssize_t readv (network::IOVector *io_vector);
103
109
ssize_t readv_all (network::IOVector *io_vector);
104
110
ssize_t writev (network::IOVector *io_vector);
105
111
ssize_t writev_all (network::IOVector *io_vector);
106
- ssize_t recvmsg (struct msghdr *msg, int flags);
107
- ssize_t sendmsg (const struct msghdr *msg, int flags);
108
112
ssize_t recv_all (void *__buf, size_t __n);
109
113
ssize_t send_all (const void *__buf, size_t __n);
110
114
ssize_t recv_packet (double timeout = 0 );
You can’t perform that action at this time.
0 commit comments