@@ -83,9 +83,8 @@ void receive_thread(Mail<mail_t, queue_size> *m, uint8_t thread_id, milliseconds
83
83
84
84
ThisThread::sleep_for (wait);
85
85
for (uint32_t i = 0 ; i < queue_size; i++) {
86
- osEvent evt = m->get ();
87
- if (evt.status == osEventMail) {
88
- mail_t *mail = (mail_t *)evt.value .p ;
86
+ mail_t *mail = m->try_get_for (Kernel::wait_for_u32_forever);
87
+ if (mail) {
89
88
const uint8_t id = mail->thread_id ;
90
89
91
90
// verify thread id
@@ -121,9 +120,8 @@ void test_single_thread_order(void)
121
120
122
121
for (uint32_t i = 0 ; i < QUEUE_SIZE; i++) {
123
122
// mail receive (main thread)
124
- osEvent evt = mail_box.get ();
125
- if (evt.status == osEventMail) {
126
- mail_t *mail = (mail_t *)evt.value .p ;
123
+ mail_t *mail = mail_box.try_get_for (Kernel::wait_for_u32_forever);
124
+ if (mail) {
127
125
const uint8_t id = mail->thread_id ;
128
126
129
127
// verify thread id
@@ -163,9 +161,8 @@ void test_multi_thread_order(void)
163
161
164
162
for (uint32_t i = 0 ; i < QUEUE_SIZE; i++) {
165
163
// mail receive (main thread)
166
- osEvent evt = mail_box.get ();
167
- if (evt.status == osEventMail) {
168
- mail_t *mail = (mail_t *)evt.value .p ;
164
+ mail_t *mail = mail_box.try_get_for (Kernel::wait_for_u32_forever);
165
+ if (mail) {
169
166
const uint8_t id = mail->thread_id ;
170
167
171
168
// verify thread id
@@ -279,32 +276,32 @@ void test_free_null()
279
276
/* * Test get from empty mailbox with timeout set
280
277
281
278
Given an empty mailbox
282
- When @a get is called on the mailbox with timeout of 50
283
- Then mailbox returns status of osOK, but no data after specified amount of time
279
+ When @a try_get_for is called on the mailbox with timeout of 50ms
280
+ Then mailbox returns no data
284
281
*/
285
282
void test_get_empty_timeout ()
286
283
{
287
284
Mail<uint32_t , 4 > mail_box;
288
285
Timer timer;
289
286
290
287
timer.start ();
291
- osEvent evt = mail_box.get (50ms);
288
+ uint32_t *mail = mail_box.try_get_for (50ms);
292
289
TEST_ASSERT_DURATION_WITHIN (5ms, 50ms, timer.elapsed_time ());
293
- TEST_ASSERT_EQUAL (osEventTimeout, evt. status );
290
+ TEST_ASSERT_NULL (mail );
294
291
}
295
292
296
293
/* * Test get from empty mailbox with 0 timeout
297
294
298
295
Given an empty mailbox
299
- When @a get is called on the mailbox with timeout of 0
300
- Then mailbox returns status of osOK, but no data
296
+ When @a try_get is called on the mailbox
297
+ Then mailbox returns no data
301
298
*/
302
299
void test_get_empty_no_timeout ()
303
300
{
304
301
Mail<uint32_t , 4 > mail_box;
305
302
306
- osEvent evt = mail_box.get (0ms );
307
- TEST_ASSERT_EQUAL (osOK, evt. status );
303
+ uint32_t *mail = mail_box.try_get ( );
304
+ TEST_ASSERT_NULL (mail );
308
305
}
309
306
310
307
/* * Test mail order
@@ -317,7 +314,6 @@ void test_get_empty_no_timeout()
317
314
void test_order (void )
318
315
{
319
316
osStatus status;
320
- osEvent evt;
321
317
Mail<int32_t , 4 > mail_box;
322
318
const int32_t TEST_VAL1 = 123 ;
323
319
const int32_t TEST_VAL2 = 456 ;
@@ -326,27 +322,21 @@ void test_order(void)
326
322
TEST_ASSERT_NOT_EQUAL (NULL , mail1);
327
323
328
324
*mail1 = TEST_VAL1;
329
- status = mail_box.put (mail1);
330
- TEST_ASSERT_EQUAL (osOK, status);
325
+ mail_box.put (mail1);
331
326
332
327
int32_t *mail2 = mail_box.try_alloc ();
333
328
TEST_ASSERT_NOT_EQUAL (NULL , mail2);
334
329
335
330
*mail2 = TEST_VAL2;
336
- status = mail_box.put (mail2);
337
- TEST_ASSERT_EQUAL (osOK, status);
338
-
331
+ mail_box.put (mail2);
339
332
340
- evt = mail_box.get ();
341
- TEST_ASSERT_EQUAL (evt.status , osEventMail);
342
333
343
- mail1 = (int32_t *)evt.value .p ;
334
+ mail1 = mail_box.try_get_for (Kernel::wait_for_u32_forever);
335
+ TEST_ASSERT_NOT_NULL (mail1);
344
336
TEST_ASSERT_EQUAL (TEST_VAL1, *mail1);
345
337
346
- evt = mail_box.get ();
347
- TEST_ASSERT_EQUAL (evt.status , osEventMail);
348
-
349
- mail2 = (int32_t *)evt.value .p ;
338
+ mail2 = mail_box.try_get_for (Kernel::wait_for_u32_forever);
339
+ TEST_ASSERT_NOT_NULL (mail2);
350
340
TEST_ASSERT_EQUAL (TEST_VAL2, *mail2);
351
341
352
342
@@ -369,7 +359,6 @@ void test_max_size()
369
359
{
370
360
osStatus status;
371
361
Mail<uint32_t , 4 > mail_box;
372
- const uint32_t TEST_VAL = 123 ;
373
362
374
363
// 1 OK
375
364
uint32_t *mail1 = mail_box.try_alloc ();
@@ -422,13 +411,10 @@ void test_data_type(void)
422
411
TEST_ASSERT_NOT_EQUAL (NULL , mail);
423
412
424
413
*mail = TEST_VAL;
425
- status = mail_box.put (mail);
426
- TEST_ASSERT_EQUAL (osOK, status);
427
-
428
- osEvent evt = mail_box.get ();
429
- TEST_ASSERT_EQUAL (evt.status , osEventMail);
414
+ mail_box.put (mail);
430
415
431
- mail = (T *)evt.value .p ;
416
+ mail = mail_box.try_get_for (Kernel::wait_for_u32_forever);
417
+ TEST_ASSERT_NOT_NULL (mail);
432
418
TEST_ASSERT_EQUAL (TEST_VAL, *mail);
433
419
434
420
0 commit comments