Lines Matching refs:queue

39 // Function for performing dequeue operations from the queue when is ready
40 static void fixed_queue_ready(fixed_queue_t* queue, UNUSED_ATTR void* context) {
41 void* msg = fixed_queue_try_dequeue(queue);
55 fixed_queue_t* queue;
57 // Test a corner case: queue of size 0
58 queue = fixed_queue_new(0);
59 EXPECT_TRUE(queue != NULL);
60 fixed_queue_free(queue, NULL);
62 // Test a corner case: queue of size 1
63 queue = fixed_queue_new(1);
64 EXPECT_TRUE(queue != NULL);
65 fixed_queue_free(queue, NULL);
67 // Test a corner case: queue of maximum size
68 queue = fixed_queue_new((size_t)-1);
69 EXPECT_TRUE(queue != NULL);
70 fixed_queue_free(queue, NULL);
72 // Test a queue of some size
73 queue = fixed_queue_new(TEST_QUEUE_SIZE);
74 EXPECT_TRUE(queue != NULL);
75 fixed_queue_free(queue, NULL);
77 // Test free-ing a NULL queue
83 fixed_queue_t* queue;
85 // Test a corner case: queue of size 0 and no callback to free entries
86 queue = fixed_queue_new(0);
87 EXPECT_TRUE(queue != NULL);
88 fixed_queue_flush(queue, NULL);
89 EXPECT_TRUE(fixed_queue_is_empty(queue));
90 fixed_queue_free(queue, osi_free);
92 // Test a corner case: queue of size 0 and a callback to free entries
93 queue = fixed_queue_new(0);
94 EXPECT_TRUE(queue != NULL);
95 fixed_queue_flush(queue, osi_free);
96 EXPECT_TRUE(fixed_queue_is_empty(queue));
97 fixed_queue_free(queue, osi_free);
99 // Test a queue of some size and no callback to free entries
100 queue = fixed_queue_new(TEST_QUEUE_SIZE);
101 EXPECT_TRUE(queue != NULL);
102 fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING1);
103 fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING2);
104 fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING3);
105 EXPECT_FALSE(fixed_queue_is_empty(queue));
106 fixed_queue_flush(queue, NULL);
107 EXPECT_TRUE(fixed_queue_is_empty(queue));
108 fixed_queue_free(queue, osi_free);
110 // Test a queue of some size and a callback to free entries
112 queue = fixed_queue_new(TEST_QUEUE_SIZE);
113 EXPECT_TRUE(queue != NULL);
114 fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING1);
115 fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING2);
116 fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING3);
117 EXPECT_FALSE(fixed_queue_is_empty(queue));
118 fixed_queue_flush(queue, test_queue_entry_free_cb);
120 EXPECT_TRUE(fixed_queue_is_empty(queue));
121 fixed_queue_free(queue, osi_free);
125 fixed_queue_t* queue;
127 // Test a NULL queue
130 // Test an empty queue
131 queue = fixed_queue_new(TEST_QUEUE_SIZE);
132 ASSERT_TRUE(queue != NULL);
133 EXPECT_TRUE(fixed_queue_is_empty(queue));
135 // Test a non-empty queue
136 fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING);
137 EXPECT_FALSE(fixed_queue_is_empty(queue));
139 // Test an empty dequeued queue
140 ASSERT_EQ(DUMMY_DATA_STRING, fixed_queue_try_dequeue(queue));
141 EXPECT_TRUE(fixed_queue_is_empty(queue));
143 fixed_queue_free(queue, NULL);
147 fixed_queue_t* queue;
149 // Test a NULL queue
152 // Test an empty queue
153 queue = fixed_queue_new(TEST_QUEUE_SIZE);
154 ASSERT_TRUE(queue != NULL);
155 EXPECT_EQ((size_t)0, fixed_queue_length(queue));
157 // Test a non-empty queue
158 fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING);
159 EXPECT_EQ((size_t)1, fixed_queue_length(queue));
161 // Test an empty dequeued queue
162 ASSERT_EQ(DUMMY_DATA_STRING, fixed_queue_try_dequeue(queue));
163 EXPECT_EQ((size_t)0, fixed_queue_length(queue));
165 fixed_queue_free(queue, NULL);
169 fixed_queue_t* queue;
171 // Test a corner case: queue of size 0
172 queue = fixed_queue_new(0);
173 ASSERT_TRUE(queue != NULL);
174 EXPECT_EQ((size_t)0, fixed_queue_capacity(queue));
175 fixed_queue_free(queue, NULL);
177 // Test a corner case: queue of size 1
178 queue = fixed_queue_new(1);
179 ASSERT_TRUE(queue != NULL);
180 EXPECT_EQ((size_t)1, fixed_queue_capacity(queue));
181 fixed_queue_free(queue, NULL);
183 // Test a corner case: queue of maximum size
184 queue = fixed_queue_new((size_t)-1);
185 ASSERT_TRUE(queue != NULL);
186 EXPECT_EQ((size_t)-1, fixed_queue_capacity(queue));
187 fixed_queue_free(queue, NULL);
189 // Test a queue of some size
190 queue = fixed_queue_new(TEST_QUEUE_SIZE);
191 ASSERT_TRUE(queue != NULL);
192 EXPECT_EQ(TEST_QUEUE_SIZE, fixed_queue_capacity(queue));
193 fixed_queue_free(queue, NULL);
197 fixed_queue_t* queue = fixed_queue_new(TEST_QUEUE_SIZE);
198 ASSERT_TRUE(queue != NULL);
201 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING);
202 EXPECT_EQ((size_t)1, fixed_queue_length(queue));
203 EXPECT_EQ(DUMMY_DATA_STRING, fixed_queue_dequeue(queue));
204 EXPECT_EQ((size_t)0, fixed_queue_length(queue));
207 EXPECT_TRUE(fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING));
208 EXPECT_EQ((size_t)1, fixed_queue_length(queue));
209 EXPECT_EQ(DUMMY_DATA_STRING, fixed_queue_try_dequeue(queue));
210 EXPECT_EQ((size_t)0, fixed_queue_length(queue));
212 // Test non-blocking enqueue beyond queue capacity
214 EXPECT_TRUE(fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING));
216 // The next enqueue operation is beyond the queue capacity, so it should fail
217 EXPECT_FALSE(fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING));
219 // Test non-blocking dequeue from a queue that is full to max capacity
221 EXPECT_EQ(DUMMY_DATA_STRING, fixed_queue_try_dequeue(queue));
224 // Test non-blocking dequeue from an empty queue
225 EXPECT_EQ(NULL, fixed_queue_try_dequeue(queue));
227 // Test non-blocking dequeue from a NULL queue
230 fixed_queue_free(queue, NULL);
234 fixed_queue_t* queue = fixed_queue_new(TEST_QUEUE_SIZE);
235 ASSERT_TRUE(queue != NULL);
237 // Test peek first/last from a NULL queue
241 // Test peek first/last from an empty queue
242 EXPECT_EQ(NULL, fixed_queue_try_peek_first(queue));
243 EXPECT_EQ(NULL, fixed_queue_try_peek_last(queue));
245 // Test peek first/last from a queue with one element
246 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING1);
247 EXPECT_EQ(DUMMY_DATA_STRING1, fixed_queue_try_peek_first(queue));
248 EXPECT_EQ(DUMMY_DATA_STRING1, fixed_queue_try_peek_last(queue));
250 // Test peek first/last from a queue with two elements
251 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING2);
252 EXPECT_EQ(DUMMY_DATA_STRING1, fixed_queue_try_peek_first(queue));
253 EXPECT_EQ(DUMMY_DATA_STRING2, fixed_queue_try_peek_last(queue));
255 // Test peek first/last from a queue with three elements
256 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING3);
257 EXPECT_EQ(DUMMY_DATA_STRING1, fixed_queue_try_peek_first(queue));
258 EXPECT_EQ(DUMMY_DATA_STRING3, fixed_queue_try_peek_last(queue));
260 fixed_queue_free(queue, NULL);
264 fixed_queue_t* queue = fixed_queue_new(TEST_QUEUE_SIZE);
265 ASSERT_TRUE(queue != NULL);
267 // Test removing from a NULL queue
271 // Test removing from an empty queue
273 fixed_queue_try_remove_from_queue(queue, (void*)DUMMY_DATA_STRING));
275 // Test removing a queued string from a queue
276 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING1);
277 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING2);
278 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING3);
279 EXPECT_EQ((size_t)3, fixed_queue_length(queue));
281 queue, (void*)DUMMY_DATA_STRING2));
282 EXPECT_EQ((size_t)2, fixed_queue_length(queue));
284 EXPECT_EQ(NULL, fixed_queue_try_remove_from_queue(queue,
287 // Test removing a non-queued string from a queue
289 fixed_queue_try_remove_from_queue(queue, (void*)DUMMY_DATA_STRING));
291 fixed_queue_free(queue, NULL);
295 fixed_queue_t* queue = fixed_queue_new(TEST_QUEUE_SIZE);
296 ASSERT_TRUE(queue != NULL);
299 int enqueue_fd = fixed_queue_get_enqueue_fd(queue);
300 int dequeue_fd = fixed_queue_get_dequeue_fd(queue);
306 // Test the file descriptors of an empty queue
311 // Test the file descriptors of a non-empty queue
313 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING);
316 fixed_queue_dequeue(queue);
318 // Test the file descriptors of a full queue
321 EXPECT_TRUE(fixed_queue_try_enqueue(queue, (void*)DUMMY_DATA_STRING));
326 fixed_queue_free(queue, NULL);
330 fixed_queue_t* queue = fixed_queue_new(TEST_QUEUE_SIZE);
331 ASSERT_TRUE(queue != NULL);
339 fixed_queue_register_dequeue(queue, thread_get_reactor(worker_thread),
342 // Add a message to the queue, and expect to receive it
343 fixed_queue_enqueue(queue, (void*)DUMMY_DATA_STRING);
347 fixed_queue_unregister_dequeue(queue);
349 fixed_queue_free(queue, NULL);