MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / mq_send_case

Function mq_send_case

src/utest/messagequeue_tc.c:52–113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50}
51
52static void mq_send_case(rt_mq_t testmq)
53{
54 rt_uint32_t send_buf[MAX_MSGS+1] = {0};
55 rt_err_t ret = RT_EOK;
56
57 for (int var = 0; var < MAX_MSGS; ++var)
58 {
59 send_buf[var] = var + 1;
60 ret = rt_mq_send_wait(testmq, &send_buf[var], sizeof(send_buf[0]), RT_WAITING_FOREVER);
61 uassert_true(ret == RT_EOK);
62 }
63 send_buf[MAX_MSGS] = MAX_MSGS + 1;
64 ret = rt_mq_send(testmq, &send_buf[MAX_MSGS], sizeof(send_buf[0]));
65 uassert_true(ret == -RT_EFULL);
66
67 ret = rt_mq_send_wait(testmq, &send_buf[MAX_MSGS], sizeof(send_buf[0]), RT_WAITING_FOREVER);
68 uassert_true(ret == RT_EOK);
69
70 while (testmq->entry != 0)
71 {
72 rt_thread_delay(100);
73 }
74
75 ret = rt_mq_send(testmq, &send_buf[1], sizeof(send_buf[0]));
76 uassert_true(ret == RT_EOK);
77
78 ret = rt_mq_send(testmq, &send_buf[2], sizeof(send_buf[0]));
79 uassert_true(ret == RT_EOK);
80
81 ret = rt_mq_urgent(testmq, &send_buf[0], sizeof(send_buf[0]));
82 uassert_true(ret == RT_EOK);
83
84 while (testmq->entry != 0)
85 {
86 rt_thread_delay(100);
87 }
88
89#ifdef RT_USING_MESSAGEQUEUE_PRIORITY
90 ret = rt_mq_send_wait_prio(testmq, &send_buf[3], sizeof(send_buf[0]), 3, 0, RT_UNINTERRUPTIBLE);
91 uassert_true(ret == RT_EOK);
92 ret = rt_mq_send_wait_prio(testmq, &send_buf[0], sizeof(send_buf[0]), 0, 0, RT_UNINTERRUPTIBLE);
93 uassert_true(ret == RT_EOK);
94
95 ret = rt_mq_send_wait_prio(testmq, &send_buf[2], sizeof(send_buf[0]), 1, 0, RT_UNINTERRUPTIBLE);
96 uassert_true(ret == RT_EOK);
97 ret = rt_mq_send_wait_prio(testmq, &send_buf[4], sizeof(send_buf[0]), 4, 0, RT_UNINTERRUPTIBLE);
98 uassert_true(ret == RT_EOK);
99 ret = rt_mq_send_wait_prio(testmq, &send_buf[1], sizeof(send_buf[0]), 1, 0, RT_UNINTERRUPTIBLE);
100 uassert_true(ret == RT_EOK);
101
102 while (testmq->entry != 0)
103 {
104 rt_thread_delay(100);
105 }
106#endif
107
108 ret = rt_mq_send(testmq, &send_buf[1], sizeof(send_buf[0]));
109 uassert_true(ret == RT_EOK);

Callers 1

mq_send_entryFunction · 0.85

Calls 6

rt_mq_send_waitFunction · 0.85
rt_mq_sendFunction · 0.85
rt_thread_delayFunction · 0.85
rt_mq_urgentFunction · 0.85
rt_mq_send_wait_prioFunction · 0.85
rt_mq_controlFunction · 0.85

Tested by

no test coverage detected