| 158 | } |
| 159 | |
| 160 | static void cancle_work_test02(void) |
| 161 | { |
| 162 | struct rt_workqueue *queue; |
| 163 | rt_uint8_t curr_priority; |
| 164 | struct rt_work work; |
| 165 | rt_err_t err; |
| 166 | |
| 167 | /* 1 higher priority than the current test thread */ |
| 168 | curr_priority = get_test_thread_priority(-1); |
| 169 | queue = rt_workqueue_create("test", 2048, curr_priority); |
| 170 | if (queue == RT_NULL) |
| 171 | { |
| 172 | LOG_E("queue create failed, L:%d", __LINE__); |
| 173 | return; |
| 174 | } |
| 175 | rt_work_init(&work, cancle_work_test02_fun, RT_NULL); |
| 176 | /* Cancel the work while it is in progress */ |
| 177 | err = rt_workqueue_submit_work(queue, &work, 0); |
| 178 | uassert_int_equal(err, RT_EOK); |
| 179 | |
| 180 | rt_thread_delay(5); |
| 181 | err = rt_workqueue_cancel_work(queue, &work); |
| 182 | uassert_int_equal(err, -RT_EBUSY); |
| 183 | |
| 184 | rt_thread_delay(100); |
| 185 | rt_workqueue_destroy(queue); |
| 186 | } |
| 187 | |
| 188 | static void cancle_work_test03_fun(struct rt_work *work, void *work_data) |
| 189 | { |
nothing calls this directly
no test coverage detected