1 /*
2 * Copyright (c) 2023-2023 Huawei Device Co., Ltd. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification,
5 * are permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice, this list of
8 * conditions and the following disclaimer.
9 *
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 *
14 * 3. Neither the name of the copyright holder nor the names of its contributors may be used
15 * to endorse or promote products derived from this software without specific prior written
16 * permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
20 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
22 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31 #include "xts_cmsis.h"
32
33 UINT16 g_cmsisTestTimeCount;
34
35 /**
36 * @tc.desc : register a test suite, this suite is used to test basic flow and interface dependency
37 * @param : subsystem name is utils
38 * @param : module name is utilsFile
39 * @param : test suit name is CmsisTaskFuncTestSuite
40 */
41 LITE_TEST_SUIT(Cmsis, Cmsistimer, CmsisTimerFuncTestSuite);
42
43 /**
44 * @tc.setup : setup for all testcases
45 * @return : setup result, TRUE is success, FALSE is fail
46 */
CmsisTimerFuncTestSuiteSetUp(void)47 static BOOL CmsisTimerFuncTestSuiteSetUp(void)
48 {
49 return TRUE;
50 }
51
52 /**
53 * @tc.teardown : teardown for all testcases
54 * @return : teardown result, TRUE is success, FALSE is fail
55 */
CmsisTimerFuncTestSuiteTearDown(void)56 static BOOL CmsisTimerFuncTestSuiteTearDown(void)
57 {
58 return TRUE;
59 }
60
CmsisTimerFunc001(void const *argument)61 static void CmsisTimerFunc001(void const *argument)
62 {
63 (void)argument;
64 return;
65 }
66
CmsisTimerFunc002(void const *argument)67 static void CmsisTimerFunc002(void const *argument)
68 {
69 (void)argument;
70 g_cmsisTestTimeCount++;
71 return;
72 }
73
74 /**
75 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0100
76 * @tc.name : timer operation for creat with parameter osTimerOnce
77 * @tc.desc : [C- SOFTWARE -0200]
78 */
79 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew001, Function | MediumTest | Level1)
80 {
81 osTimerId_t id;
82 osStatus_t status;
83 UINT32 value = 0xffff;
84 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
85 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
86 (void)osTimerDelete(id);
87 status = osDelay(DELAY_TICKS_5);
88 ICUNIT_ASSERT_EQUAL(status, osOK, status);
89 return 0;
90 };
91
92 /**
93 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0200
94 * @tc.name : timer operation for creat with parameter osTimerPeriodic
95 * @tc.desc : [C- SOFTWARE -0200]
96 */
97 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew002, Function | MediumTest | Level1)
98 {
99 osTimerId_t id;
100 osStatus_t status;
101 UINT32 value = 0xffff;
102 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
103 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
104 (void)osTimerDelete(id);
105 status = osDelay(DELAY_TICKS_5);
106 ICUNIT_ASSERT_EQUAL(status, osOK, status);
107 return 0;
108 };
109
110 /**
111 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0300
112 * @tc.name : timer creat operation with NULL func and parameter osTimerOnce
113 * @tc.desc : [C- SOFTWARE -0200]
114 */
115 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew003, Function | MediumTest | Level1)
116 {
117 osTimerId_t id;
118 osStatus_t status;
119 UINT32 value = 0xffff;
120 id = osTimerNew(NULL, osTimerOnce, &value, NULL);
121 ICUNIT_ASSERT_EQUAL(id, NULL, id);
122 status = osDelay(DELAY_TICKS_5);
123 ICUNIT_ASSERT_EQUAL(status, osOK, status);
124 return 0;
125 };
126
127 /**
128 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0400
129 * @tc.name : timer creat operation with NULL func and parameter osTimerPeriodic
130 * @tc.desc : [C- SOFTWARE -0200]
131 */
132 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew004, Function | MediumTest | Level1)
133 {
134 osTimerId_t id;
135 osStatus_t status;
136 UINT32 value = 0xffff;
137 id = osTimerNew(NULL, osTimerPeriodic, &value, NULL);
138 ICUNIT_ASSERT_EQUAL(id, NULL, id);
139 status = osDelay(DELAY_TICKS_5);
140 ICUNIT_ASSERT_EQUAL(status, osOK, status);
141 return 0;
142 };
143
144 /**
145 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0500
146 * @tc.name : timer operation for invalid timer type
147 * @tc.desc : [C- SOFTWARE -0200]
148 */
149 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew005, Function | MediumTest | Level1)
150 {
151 osTimerId_t id;
152 osStatus_t status;
153 UINT32 value = 0xffff;
154 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, INVALID_TIMER_TYPE, &value, NULL);
155 ICUNIT_ASSERT_EQUAL(id, NULL, id);
156 status = osDelay(DELAY_TICKS_5);
157 ICUNIT_ASSERT_EQUAL(status, osOK, status);
158 return 0;
159 };
160
161 /**
162 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0600
163 * @tc.name : timer operation for start with parameter osTimerOnce
164 * @tc.desc : [C- SOFTWARE -0200]
165 */
166 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart001, Function | MediumTest | Level1)
167 {
168 UINT32 uwRet;
169 osTimerId_t id;
170 UINT32 value = 0xffff;
171 UINT32 millisec = MILLISEC_NUM_INT4;
172 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
173 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
174 uwRet = osTimerStart(id, millisec);
175 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
176 (void)osTimerDelete(id);
177 return 0;
178 };
179
180 /**
181 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0700
182 * @tc.name : timer operation for start with parameter osTimerPeriodic
183 * @tc.desc : [C- SOFTWARE -0200]
184 */
185 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart002, Function | MediumTest | Level1)
186 {
187 UINT32 uwRet;
188 osTimerId_t id;
189 UINT32 value = 0xffff;
190 UINT32 millisec = MILLISEC_NUM_INT4;
191 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
192 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
193 uwRet = osTimerStart(id, millisec);
194 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
195 (void)osTimerDelete(id);
196 return 0;
197 };
198
199 /**
200 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0800
201 * @tc.name : timer operation for start with callback func and parameter osTimerOnce
202 * @tc.desc : [C- SOFTWARE -0200]
203 */
204 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart003, Function | MediumTest | Level1)
205 {
206 UINT32 uwRet;
207 osTimerId_t id;
208 osStatus_t status;
209 UINT32 value = 0xffff;
210 UINT32 millisec = MILLISEC_NUM_INT4;
211 g_cmsisTestTimeCount = 0;
212 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc002, osTimerOnce, &value, NULL);
213 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
214 uwRet = osTimerStart(id, millisec);
215 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
216
217 status = osDelay(DELAY_TICKS_10);
218 ICUNIT_ASSERT_EQUAL(status, osOK, status);
219 ICUNIT_ASSERT_EQUAL(1, g_cmsisTestTimeCount, g_cmsisTestTimeCount); /* 1, common data for test, no special meaning */
220 (void)osTimerDelete(id);
221 return 0;
222 };
223
224 /**
225 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0900
226 * @tc.name : timer operation for start with callback func and parameter osTimerPeriodic
227 * @tc.desc : [C- SOFTWARE -0200]
228 */
229 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart004, Function | MediumTest | Level1)
230 {
231 UINT32 uwRet;
232 osTimerId_t id;
233 osStatus_t status;
234 UINT32 value = 0xffff;
235 UINT32 millisec = MILLISEC_NUM_INT4;
236 g_cmsisTestTimeCount = 0;
237 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc002, osTimerPeriodic, &value, NULL);
238 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
239 uwRet = osTimerStart(id, millisec);
240 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
241
242 status = osDelay(DELAY_TICKS_10);
243 ICUNIT_ASSERT_EQUAL(status, osOK, status);
244 ICUNIT_ASSERT_EQUAL(TIMER_PERIODIC_COUNT, g_cmsisTestTimeCount, g_cmsisTestTimeCount);
245 (void)osTimerDelete(id);
246 return 0;
247 };
248
249 /**
250 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1000
251 * @tc.name : timer start operation with ticks = 0 and parameter osTimerOnce
252 * @tc.desc : [C- SOFTWARE -0200]
253 */
254 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart005, Function | MediumTest | Level1)
255 {
256 UINT32 uwRet;
257 osTimerId_t id;
258 UINT32 value = 0xffff;
259 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
260 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
261 uwRet = osTimerStart(id, 0);
262 ICUNIT_ASSERT_EQUAL(osErrorParameter, uwRet, uwRet);
263 (void)osTimerDelete(id);
264 return 0;
265 };
266
267 /**
268 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1100
269 * @tc.name : timer start operation with ticks = 0 and parameter osTimerPeriodic
270 * @tc.desc : [C- SOFTWARE -0200]
271 */
272 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart006, Function | MediumTest | Level1)
273 {
274 UINT32 uwRet;
275 osTimerId_t id;
276 UINT32 value = 0xffff;
277 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
278 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
279 uwRet = osTimerStart(id, 0);
280 ICUNIT_ASSERT_EQUAL(osErrorParameter, uwRet, uwRet);
281 (void)osTimerDelete(id);
282 return 0;
283 };
284
285 /**
286 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1200
287 * @tc.name : timer start operation with timer_id = NULL
288 * @tc.desc : [C- SOFTWARE -0200]
289 */
290 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart007, Function | MediumTest | Level1)
291 {
292 UINT32 millisec = MILLISEC_NUM_INT4;
293 UINT32 uwRet = osTimerStart(NULL, millisec);
294 ICUNIT_ASSERT_EQUAL(osErrorParameter, uwRet, uwRet);
295 return 0;
296 };
297
298 /**
299 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1300
300 * @tc.name : timer operation for delete with parameter osTimerOnce
301 * @tc.desc : [C- SOFTWARE -0200]
302 */
303 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete001, Function | MediumTest | Level1)
304 {
305 UINT32 uwRet;
306 osTimerId_t id;
307 osStatus_t status;
308 UINT32 value = 0xffff;
309 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
310 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
311
312 status = osDelay(1); /* 1, common data for test, no special meaning */
313 ICUNIT_ASSERT_EQUAL(status, osOK, status);
314 uwRet = osTimerDelete(id);
315 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
316 return 0;
317 };
318
319 /**
320 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1400
321 * @tc.name : timer operation for delete with parameter osTimerPeriodic
322 * @tc.desc : [C- SOFTWARE -0200]
323 */
324 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete002, Function | MediumTest | Level1)
325 {
326 UINT32 uwRet;
327 osTimerId_t id;
328 osStatus_t status;
329 UINT32 value = 0xffff;
330 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
331 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
332
333 status = osDelay(1); /* 1, common data for test, no special meaning */
334 ICUNIT_ASSERT_EQUAL(status, osOK, status);
335 uwRet = osTimerDelete(id);
336 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
337 return 0;
338 };
339
340 /**
341 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1500
342 * @tc.name : timer operation for delete after osTimerStart with parameter osTimerOnce
343 * @tc.desc : [C- SOFTWARE -0200]
344 */
345 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete003, Function | MediumTest | Level1)
346 {
347 UINT32 uwRet;
348 osTimerId_t id;
349 osStatus_t status;
350 UINT32 value = 0xffff;
351 UINT32 millisec = MILLISEC_NUM_INT10;
352 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
353 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
354
355 osTimerStart(id, millisec);
356 status = osDelay(1); /* 1, common data for test, no special meaning */
357 ICUNIT_ASSERT_EQUAL(status, osOK, status);
358 uwRet = osTimerDelete(id);
359 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
360 return 0;
361 };
362
363 /**
364 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1600
365 * @tc.name : timer operation for delete after osTimerStart with parameter osTimerPeriodic
366 * @tc.desc : [C- SOFTWARE -0200]
367 */
368 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete004, Function | MediumTest | Level1)
369 {
370 UINT32 uwRet;
371 osTimerId_t id;
372 osStatus_t status;
373 UINT32 value = 0xffff;
374 UINT32 millisec = MILLISEC_NUM_INT10;
375 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
376 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
377
378 uwRet = osTimerStart(id, millisec);
379 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
380 status = osDelay(1); /* 1, common data for test, no special meaning */
381 ICUNIT_ASSERT_EQUAL(status, osOK, status);
382 uwRet = osTimerDelete(id);
383 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
384 return 0;
385 };
386
387 /**
388 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1700
389 * @tc.name : timer delete operation with timer_id = NULL
390 * @tc.desc : [C- SOFTWARE -0200]
391 */
392 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete005, Function | MediumTest | Level1)
393 {
394 UINT32 uwRet = osTimerDelete(NULL);
395 ICUNIT_ASSERT_EQUAL(osErrorParameter, uwRet, uwRet);
396 return 0;
397 };
398
399 /**
400 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1800
401 * @tc.name : timer operation for stop after osTimerStart with parameter osTimerOnce
402 * @tc.desc : [C- SOFTWARE -0200]
403 */
404 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop001, Function | MediumTest | Level1)
405 {
406 UINT32 uwRet;
407 osTimerId_t id;
408 osStatus_t status;
409 UINT32 value = 0xffff;
410 UINT32 millisec = MILLISEC_NUM_INT10;
411 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
412 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
413
414 uwRet = osTimerStart(id, millisec);
415 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
416 status = osDelay(1); /* 1, common data for test, no special meaning */
417 ICUNIT_ASSERT_EQUAL(status, osOK, status);
418 uwRet = osTimerStop(id);
419 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
420 (void)osTimerDelete(id);
421 return 0;
422 };
423
424 /**
425 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1900
426 * @tc.name : timer operation for stop after osTimerStart with parameter osTimerPeriodic
427 * @tc.desc : [C- SOFTWARE -0200]
428 */
429 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop002, Function | MediumTest | Level1)
430 {
431 UINT32 uwRet;
432 osTimerId_t id;
433 osStatus_t status;
434 UINT32 value = 0xffff;
435 UINT32 millisec = MILLISEC_NUM_INT10;
436 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
437 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
438
439 uwRet = osTimerStart(id, millisec);
440 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
441 status = osDelay(1); /* 1, common data for test, no special meaning */
442 ICUNIT_ASSERT_EQUAL(status, osOK, status);
443 uwRet = osTimerStop(id);
444 ICUNIT_ASSERT_EQUAL(osOK, uwRet, uwRet);
445 (void)osTimerDelete(id);
446 return 0;
447 };
448
449 /**
450 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2000
451 * @tc.name : timer operation for stop with parameter osTimerOnce
452 * @tc.desc : [C- SOFTWARE -0200]
453 */
454 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop003, Function | MediumTest | Level1)
455 {
456 UINT32 uwRet;
457 osTimerId_t id;
458 osStatus_t status;
459 UINT32 value = 0xffff;
460 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
461 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
462
463 status = osDelay(1); /* 1, common data for test, no special meaning */
464 ICUNIT_ASSERT_EQUAL(status, osOK, status);
465 uwRet = osTimerStop(id);
466 ICUNIT_ASSERT_EQUAL(osErrorResource, uwRet, uwRet);
467 (void)osTimerDelete(id);
468 return 0;
469 };
470
471 /**
472 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2100
473 * @tc.name : timer operation for stop with parameter osTimerPeriodic
474 * @tc.desc : [C- SOFTWARE -0200]
475 */
476 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop004, Function | MediumTest | Level1)
477 {
478 UINT32 uwRet;
479 osTimerId_t id;
480 osStatus_t status;
481 UINT32 value = 0xffff;
482 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
483 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
484
485 status = osDelay(1); /* 1, common data for test, no special meaning */
486 ICUNIT_ASSERT_EQUAL(status, osOK, status);
487 uwRet = osTimerStop(id);
488 ICUNIT_ASSERT_EQUAL(osErrorResource, uwRet, uwRet);
489 (void)osTimerDelete(id);
490 return 0;
491 };
492
493 /**
494 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2200
495 * @tc.name : timer stop operation with timer_id = NULL
496 * @tc.desc : [C- SOFTWARE -0200]
497 */
498 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop005, Function | MediumTest | Level1)
499 {
500 UINT32 uwRet = osTimerStop(NULL);
501 ICUNIT_ASSERT_EQUAL(osErrorParameter, uwRet, uwRet);
502 return 0;
503 };
504
505 /**
506 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2300
507 * @tc.name : timer operation for running
508 * @tc.desc : [C- SOFTWARE -0200]
509 */
510 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning001, Function | MediumTest | Level1)
511 {
512 UINT32 uwRet;
513 osTimerId_t id;
514 UINT32 value = 0xffff;
515 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
516 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
517
518 uwRet = osTimerIsRunning(id);
519 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
520 (void)osTimerDelete(id);
521 return 0;
522 };
523
524 /**
525 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2400
526 * @tc.name : timer operation for running after osTimerStart
527 * @tc.desc : [C- SOFTWARE -0200]
528 */
529 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning002, Function | MediumTest | Level1)
530 {
531 UINT32 uwRet;
532 osTimerId_t id;
533 UINT32 value = 0xffff;
534 UINT32 millisec = MILLISEC_NUM_INT10;
535 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
536 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
537
538 uwRet = osTimerStart(id, millisec);
539 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
540 uwRet = osTimerIsRunning(id);
541 ICUNIT_ASSERT_EQUAL(uwRet, 1, uwRet); /* 1, common data for test, no special meaning */
542 (void)osTimerDelete(id);
543 return 0;
544 };
545
546 /**
547 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2500
548 * @tc.name : timer operation for running after osTimerStart and osTimerStop
549 * @tc.desc : [C- SOFTWARE -0200]
550 */
551 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning003, Function | MediumTest | Level1)
552 {
553 UINT32 uwRet;
554 osTimerId_t id;
555 UINT32 value = 0xffff;
556 UINT32 millisec = MILLISEC_NUM_INT10;
557 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
558 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
559
560 uwRet = osTimerStart(id, millisec);
561 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
562 uwRet = osTimerStop(id);
563 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
564
565 uwRet = osTimerIsRunning(id);
566 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
567 (void)osTimerDelete(id);
568 return 0;
569 };
570
571 /**
572 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2600
573 * @tc.name : timer operation for running after osTimerStart and osTimerDelete
574 * @tc.desc : [C- SOFTWARE -0200]
575 */
576 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning004, Function | MediumTest | Level1)
577 {
578 UINT32 uwRet;
579 osTimerId_t id;
580 UINT32 value = 0xffff;
581 UINT32 millisec = MILLISEC_NUM_INT10;
582 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
583 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
584
585 uwRet = osTimerStart(id, millisec);
586 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
587 uwRet = osTimerDelete(id);
588 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
589 uwRet = osTimerIsRunning(id);
590 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
591 return 0;
592 };
593
594 /**
595 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2700
596 * @tc.name : timer operation for running with parameter osTimerPeriodic
597 * @tc.desc : [C- SOFTWARE -0200]
598 */
599 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning005, Function | MediumTest | Level1)
600 {
601 UINT32 uwRet;
602 osTimerId_t id;
603 UINT32 value = 0xffff;
604 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
605 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
606
607 uwRet = osTimerIsRunning(id);
608 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
609 (void)osTimerDelete(id);
610 return 0;
611 };
612
613 /**
614 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2800
615 * @tc.name : timer operation for running after osTimerStart with parameter osTimerPeriodic
616 * @tc.desc : [C- SOFTWARE -0200]
617 */
618 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning006, Function | MediumTest | Level1)
619 {
620 UINT32 uwRet;
621 osTimerId_t id;
622 UINT32 value = 0xffff;
623 UINT32 millisec = MILLISEC_NUM_INT10;
624 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
625 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
626
627 uwRet = osTimerStart(id, millisec);
628 ICUNIT_ASSERT_EQUAL(uwRet, osOK, uwRet);
629 uwRet = osTimerIsRunning(id);
630 ICUNIT_ASSERT_EQUAL(uwRet, 1, uwRet); /* 1, common data for test, no special meaning */
631 (void)osTimerDelete(id);
632 return 0;
633 };
634
635 /**
636 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2900
637 * @tc.name : timer operation for running after osTimerStart and osTimerStop with parameter osTimerPeriodic
638 * @tc.desc : [C- SOFTWARE -0200]
639 */
640 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning007, Function | MediumTest | Level1)
641 {
642 UINT32 uwRet;
643 osTimerId_t id;
644 UINT32 value = 0xffff;
645 UINT32 millisec = MILLISEC_NUM_INT10;
646 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
647 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
648
649 uwRet = osTimerStart(id, millisec);
650 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
651 uwRet = osTimerStop(id);
652 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
653 uwRet = osTimerIsRunning(id);
654 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
655 (void)osTimerDelete(id);
656 return 0;
657 };
658
659 /**
660 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3000
661 * @tc.name : timer operation for running after osTimerStart and osTimerDelete with parameter osTimerPeriodic
662 * @tc.desc : [C- SOFTWARE -0200]
663 */
664 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning008, Function | MediumTest | Level1)
665 {
666 UINT32 uwRet;
667 osTimerId_t id;
668 UINT32 value = 0xffff;
669 UINT32 millisec = MILLISEC_NUM_INT10;
670 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
671 ICUNIT_ASSERT_NOT_EQUAL(id, NULL, id);
672
673 uwRet = osTimerStart(id, millisec);
674 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
675 uwRet = osTimerDelete(id);
676 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
677 uwRet = osTimerIsRunning(id);
678 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
679 return 0;
680 };
681
682 /**
683 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3100
684 * @tc.name : timer running inquiry with timer_id = NULL
685 * @tc.desc : [C- SOFTWARE -0200]
686 */
687 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning009, Function | MediumTest | Level1)
688 {
689 UINT32 uwRet = osTimerIsRunning(NULL);
690 ICUNIT_ASSERT_EQUAL(uwRet, 0, uwRet);
691 return 0;
692 };
693
694 /**
695 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3200
696 * @tc.name : os operation for get tick freq
697 * @tc.desc : [C- SOFTWARE -0200]
698 */
699 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsKernelGetTickFreq001, Function | MediumTest | Level1)
700 {
701 UINT32 uwRet = osKernelGetTickFreq();
702 ICUNIT_ASSERT_EQUAL(uwRet, LOSCFG_BASE_CORE_TICK_PER_SECOND, uwRet);
703 return 0;
704 };
705
706 /**
707 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3300
708 * @tc.name : os operation for get sys time freq
709 * @tc.desc : [C- SOFTWARE -0200]
710 */
711 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsKernelGetSysTimerFreq001, Function | MediumTest | Level1)
712 {
713 UINT32 uwRet = osKernelGetSysTimerFreq();
714 ICUNIT_ASSERT_EQUAL(uwRet, OS_SYS_CLOCK, uwRet);
715 return 0;
716 };
717
718 /**
719 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3400
720 * @tc.name : os operation for get sys time count
721 * @tc.desc : [C- SOFTWARE -0200]
722 */
723 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsKernelGetSysTimerCount001, Function | MediumTest | Level1)
724 {
725 UINT32 uwRet = osKernelGetSysTimerCount();
726 ICUNIT_ASSERT_WITHIN_EQUAL(uwRet, 0, UINT_MAX, uwRet);
727 return 0;
728 };
729
730 RUN_TEST_SUITE(CmsisTimerFuncTestSuite);
731
CmsisTimerFuncTest(void)732 void CmsisTimerFuncTest(void)
733 {
734 RUN_ONE_TESTCASE(testOsTimerNew001);
735 RUN_ONE_TESTCASE(testOsTimerNew002);
736 RUN_ONE_TESTCASE(testOsTimerNew003);
737 RUN_ONE_TESTCASE(testOsTimerNew004);
738 RUN_ONE_TESTCASE(testOsTimerNew005);
739 RUN_ONE_TESTCASE(testOsTimerStart001);
740 RUN_ONE_TESTCASE(testOsTimerStart002);
741 RUN_ONE_TESTCASE(testOsTimerStart003);
742 RUN_ONE_TESTCASE(testOsTimerStart004);
743 RUN_ONE_TESTCASE(testOsTimerStart005);
744 RUN_ONE_TESTCASE(testOsTimerStart006);
745 RUN_ONE_TESTCASE(testOsTimerStart007);
746 RUN_ONE_TESTCASE(testOsTimerDelete001);
747 RUN_ONE_TESTCASE(testOsTimerDelete002);
748 RUN_ONE_TESTCASE(testOsTimerDelete003);
749 RUN_ONE_TESTCASE(testOsTimerDelete004);
750 RUN_ONE_TESTCASE(testOsTimerDelete005);
751 RUN_ONE_TESTCASE(testOsTimerStop001);
752 RUN_ONE_TESTCASE(testOsTimerStop002);
753 RUN_ONE_TESTCASE(testOsTimerStop003);
754 RUN_ONE_TESTCASE(testOsTimerStop004);
755 RUN_ONE_TESTCASE(testOsTimerStop005);
756 RUN_ONE_TESTCASE(testOsTimerIsRunning001);
757 RUN_ONE_TESTCASE(testOsTimerIsRunning002);
758 RUN_ONE_TESTCASE(testOsTimerIsRunning003);
759 RUN_ONE_TESTCASE(testOsTimerIsRunning004);
760 RUN_ONE_TESTCASE(testOsTimerIsRunning005);
761 RUN_ONE_TESTCASE(testOsTimerIsRunning006);
762 RUN_ONE_TESTCASE(testOsTimerIsRunning007);
763 RUN_ONE_TESTCASE(testOsTimerIsRunning008);
764 RUN_ONE_TESTCASE(testOsTimerIsRunning009);
765 RUN_ONE_TESTCASE(testOsKernelGetTickFreq001);
766 RUN_ONE_TESTCASE(testOsKernelGetSysTimerFreq001);
767 RUN_ONE_TESTCASE(testOsKernelGetSysTimerCount001);
768 }