Skip to content

Commit c52d7c5

Browse files
authored
Add unit tests for MacOS, refactor, and optimize code (#5803)
1 parent 5b9d160 commit c52d7c5

File tree

106 files changed

+1457
-1199
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+1457
-1199
lines changed

.github/workflows/unit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,5 @@ jobs:
9393
export PHP_VERSION=${{ matrix.php-version }}
9494
export SWOOLE_CI_IN_MACOS=1
9595
cd ${{runner.workspace}}/swoole-src
96+
ulimit -n 100000
9697
./scripts/run-tests.sh

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(libswoole)
44
enable_language(ASM)
55
set(SWOOLE_VERSION 6.1.0-dev)
66

7-
set(CMAKE_CXX_STANDARD 17)
7+
set(CMAKE_CXX_STANDARD 14)
88
set(CMAKE_CXX_STANDARD_REQUIRED ON)
99
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g")
1010
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g")

config.m4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,9 +1309,9 @@ EOF
13091309
CXXFLAGS="$CXXFLAGS -Wall -Wno-unused-function -Wno-deprecated -Wno-deprecated-declarations"
13101310

13111311
if test "$SW_OS" = "CYGWIN" || test "$SW_OS" = "MINGW"; then
1312-
CXXFLAGS="$CXXFLAGS -std=gnu++11"
1312+
CXXFLAGS="$CXXFLAGS -std=gnu++14"
13131313
else
1314-
CXXFLAGS="$CXXFLAGS -std=c++11"
1314+
CXXFLAGS="$CXXFLAGS -std=c++14"
13151315
fi
13161316

13171317
if test "$SW_CPU" = "arm"; then

core-tests/src/network/socket.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,34 +32,39 @@ TEST(socket, connect_sync) {
3232
sock = make_socket(SW_SOCK_UNIX_STREAM, SW_FD_STREAM, 0);
3333
ASSERT_NE(sock, nullptr);
3434
sa.assign(SW_SOCK_UNIX_STREAM, "/tmp/swole-not-exists.sock");
35-
ASSERT_EQ(sock->connect_sync(sa, 0.3), SW_ERR);
35+
sock->set_timeout(0.3, SW_TIMEOUT_CONNECT);
36+
ASSERT_EQ(sock->connect_sync(sa), SW_ERR);
3637
ASSERT_EQ(swoole_get_last_error(), ENOENT);
3738
sock->free();
3839

3940
sock = make_socket(SW_SOCK_TCP, SW_FD_STREAM, 0);
4041
ASSERT_NE(sock, nullptr);
4142
sa.assign(SW_SOCK_TCP, "192.168.199.199", 80);
42-
ASSERT_EQ(sock->connect_sync(sa, 0.3), SW_ERR);
43+
sock->set_timeout(0.3, SW_TIMEOUT_CONNECT);
44+
ASSERT_EQ(sock->connect_sync(sa), SW_ERR);
4345
ASSERT_EQ(swoole_get_last_error(), ETIMEDOUT);
4446
sock->free();
4547

4648
sock = make_socket(SW_SOCK_TCP, SW_FD_STREAM, 0);
4749
ASSERT_NE(sock, nullptr);
4850
sa.assign(SW_SOCK_TCP, "127.0.0.1", 59999);
49-
ASSERT_EQ(sock->connect_sync(sa, 0.3), SW_ERR);
51+
sock->set_timeout(0.3, SW_TIMEOUT_CONNECT);
52+
ASSERT_EQ(sock->connect_sync(sa), SW_ERR);
5053
ASSERT_EQ(swoole_get_last_error(), ECONNREFUSED);
5154
sock->free();
5255

5356
sock = make_socket(SW_SOCK_TCP, SW_FD_STREAM, 0);
5457
ASSERT_NE(sock, nullptr);
5558
sa.assign(SW_SOCK_TCP, TEST_HTTP_DOMAIN, 80);
56-
ASSERT_EQ(sock->connect_sync(sa, 0.3), SW_OK);
59+
sock->set_timeout(0.3, SW_TIMEOUT_CONNECT);
60+
ASSERT_EQ(sock->connect_sync(sa), SW_OK);
5761
sock->free();
5862

5963
sock = make_socket(SW_SOCK_UDP, SW_FD_STREAM, 0);
6064
ASSERT_NE(sock, nullptr);
6165
sa.assign(SW_SOCK_UDP, "127.0.0.1", 9900);
62-
ASSERT_EQ(sock->connect_sync(sa, 0.3), SW_OK);
66+
sock->set_timeout(0.3, SW_TIMEOUT_CONNECT);
67+
ASSERT_EQ(sock->connect_sync(sa), SW_OK);
6368
sock->free();
6469
}
6570

@@ -69,7 +74,8 @@ TEST(socket, fail) {
6974

7075
network::Address sa;
7176
sa.assign(SW_SOCK_TCP, TEST_HTTP_DOMAIN, 80);
72-
ASSERT_EQ(sock->connect_sync(sa, 0.3), SW_OK);
77+
sock->set_timeout(0.3, SW_TIMEOUT_CONNECT);
78+
ASSERT_EQ(sock->connect_sync(sa), SW_OK);
7379

7480
close(sock->get_fd());
7581

ext-src/php_swoole_client.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,23 @@ struct ClientObject {
4343
zend_object std;
4444
};
4545

46-
static sw_inline ClientObject *php_swoole_client_fetch_object(zend_object *obj) {
47-
return (ClientObject *) ((char *) obj - swoole_client_handlers.offset);
46+
static inline ClientObject *php_swoole_client_fetch_object(zend_object *obj) {
47+
return reinterpret_cast<ClientObject *>(reinterpret_cast<char *>(obj) - swoole_client_handlers.offset);
4848
}
4949

50-
static sw_inline ClientObject *php_swoole_client_fetch_object(zval *zobj) {
50+
static inline ClientObject *php_swoole_client_fetch_object(const zval *zobj) {
5151
return php_swoole_client_fetch_object(Z_OBJ_P(zobj));
5252
}
5353

54-
static sw_inline swoole::network::Client *php_swoole_client_get_cli(zval *zobject) {
54+
static inline swoole::network::Client *php_swoole_client_get_cli(const zval *zobject) {
5555
return php_swoole_client_fetch_object(Z_OBJ_P(zobject))->cli;
5656
}
5757

58-
swoole::network::Client *php_swoole_client_get_cli_safe(zval *zobject);
59-
void php_swoole_client_free(zval *zobject, swoole::network::Client *cli);
60-
void php_swoole_client_async_free_object(ClientObject *client_obj);
61-
bool php_swoole_client_check_setting(swoole::network::Client *cli, zval *zset);
58+
swoole::network::Client *php_swoole_client_get_cli_safe(const zval *zobject);
59+
void php_swoole_client_free(const zval *zobject, swoole::network::Client *cli);
60+
void php_swoole_client_async_free_object(const ClientObject *client_obj);
61+
bool php_swoole_client_check_setting(swoole::network::Client *cli, const zval *zset);
6262
#ifdef SW_USE_OPENSSL
63-
void php_swoole_client_check_ssl_setting(swoole::network::Client *cli, zval *zset);
63+
void php_swoole_client_check_ssl_setting(const swoole::network::Client *cli, const zval *zset);
6464
bool php_swoole_client_enable_ssl_encryption(swoole::network::Client *cli, zval *zobject);
6565
#endif

ext-src/php_swoole_cxx.h

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -450,28 +450,6 @@ class Array {
450450
}
451451
};
452452

453-
enum PipeType {
454-
PIPE_TYPE_NONE = 0,
455-
PIPE_TYPE_STREAM = 1,
456-
PIPE_TYPE_DGRAM = 2,
457-
};
458-
459-
class Process {
460-
public:
461-
zend_object *zsocket = nullptr;
462-
enum PipeType pipe_type;
463-
bool enable_coroutine;
464-
465-
Process(enum PipeType pipe_type, bool enable_coroutine)
466-
: pipe_type(pipe_type), enable_coroutine(enable_coroutine) {}
467-
468-
~Process() {
469-
if (zsocket) {
470-
OBJ_RELEASE(zsocket);
471-
}
472-
}
473-
};
474-
475453
class Variable {
476454
public:
477455
zval value;

ext-src/php_swoole_private.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,8 +388,8 @@ php_socket *php_swoole_convert_to_socket(int sock);
388388
#endif
389389

390390
#ifdef HAVE_CPU_AFFINITY
391-
bool php_swoole_array_to_cpu_set(zval *array, cpu_set_t *cpu_set);
392-
void php_swoole_cpu_set_to_array(zval *array, cpu_set_t *cpu_set);
391+
bool php_swoole_array_to_cpu_set(const zval *array, cpu_set_t *cpu_set);
392+
void php_swoole_cpu_set_to_array(zval *array, const cpu_set_t *cpu_set);
393393
#endif
394394

395395
zend_bool php_swoole_signal_isset_handler(int signo);

ext-src/php_swoole_process.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,15 @@
2020
#include "php_swoole_cxx.h"
2121
#include "swoole_process_pool.h"
2222

23+
enum PipeType {
24+
PIPE_TYPE_NONE = 0,
25+
PIPE_TYPE_STREAM = 1,
26+
PIPE_TYPE_DGRAM = 2,
27+
};
28+
2329
void php_swoole_process_clean();
2430
int php_swoole_process_start(swoole::Worker *process, zval *zobject);
25-
swoole::Worker *php_swoole_process_get_worker(zval *zobject);
26-
void php_swoole_process_set_worker(zval *zobject, swoole::Worker *worker);
31+
swoole::Worker *php_swoole_process_get_worker(const zval *zobject);
32+
void php_swoole_process_set_worker(const zval *zobject, swoole::Worker *worker, bool enable_coroutine, int pipe_type);
2733

2834
swoole::ProcessPool *sw_process_pool();

0 commit comments

Comments
 (0)