File tree Expand file tree Collapse file tree 2 files changed +44
-0
lines changed Expand file tree Collapse file tree 2 files changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -40,6 +40,38 @@ TEST(server, create_pipe_buffers) {
40
40
}
41
41
}
42
42
43
+ TEST (server, schedule) {
44
+ int ret;
45
+ Server serv (Server::MODE_PROCESS);
46
+ serv.worker_num = 6 ;
47
+ serv.dispatch_mode = SW_DISPATCH_QUEUE;
48
+ ret = serv.create ();
49
+ ASSERT_EQ (SW_OK, ret);
50
+
51
+ for (uint32_t i = 0 ; i < serv.worker_num ; i++) {
52
+ serv.workers [i].status = SW_WORKER_BUSY;
53
+ }
54
+
55
+ std::set<int > _worker_id_set;
56
+
57
+ for (uint32_t i = 0 ; i < serv.worker_num ; i++) {
58
+ auto worker_id = serv.schedule_worker (i*13 , nullptr );
59
+ _worker_id_set.insert (worker_id);
60
+ }
61
+ ASSERT_EQ (_worker_id_set.size (), serv.worker_num );
62
+
63
+ for (uint32_t i = 1 ; i < serv.worker_num - 1 ; i++) {
64
+ serv.workers [i].status = SW_WORKER_IDLE;
65
+ }
66
+
67
+ _worker_id_set.clear ();
68
+ for (uint32_t i = 0 ; i < serv.worker_num ; i++) {
69
+ auto worker_id = serv.schedule_worker (i*13 , nullptr );
70
+ _worker_id_set.insert (worker_id);
71
+ }
72
+ ASSERT_EQ (_worker_id_set.size (), serv.worker_num - 2 );
73
+ }
74
+
43
75
static const char *packet = " hello world\n " ;
44
76
45
77
TEST (server, base) {
Original file line number Diff line number Diff line change @@ -148,6 +148,18 @@ struct Worker {
148
148
void *ptr2;
149
149
150
150
ssize_t send_pipe_message (const void *buf, size_t n, int flags);
151
+
152
+ void set_status (enum swWorker_status _status) {
153
+ status = _status;
154
+ }
155
+
156
+ bool is_busy () {
157
+ return status == SW_WORKER_BUSY;
158
+ }
159
+
160
+ bool is_idle () {
161
+ return status == SW_WORKER_IDLE;
162
+ }
151
163
};
152
164
153
165
struct StreamInfo {
You can’t perform that action at this time.
0 commit comments