1 /**
2 * Copyright (c) 2020-2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 *
15 */
16 #include "ohos_types.h"
17 #include <securec.h>
18 #include "hctest.h"
19 #include "los_config.h"
20 #include "cmsis_os2.h"
21 #include "kernel_test.h"
22
23 UINT16 g_cmsisTestTimeCount;
24 #define MILLISEC_NUM_INT10 10U
25 #define MILLISEC_NUM_INT4 4U
26 #define INVALID_TIMER_TYPE 10
27 #define TIMER_PERIODIC_COUNT 2
28
29
30 /**
31 * @tc.desc : register a test suite, this suite is used to test basic flow and interface dependency
32 * @param : subsystem name is utils
33 * @param : module name is utilsFile
34 * @param : test suit name is CmsisTaskFuncTestSuite
35 */
36 LITE_TEST_SUIT(Cmsis, Cmsistimer, CmsisTimerFuncTestSuite);
37
38 /**
39 * @tc.setup : setup for all testcases
40 * @return : setup result, TRUE is success, FALSE is fail
41 */
CmsisTimerFuncTestSuiteSetUp(void)42 static BOOL CmsisTimerFuncTestSuiteSetUp(void)
43 {
44 return TRUE;
45 }
46
47 /**
48 * @tc.teardown : teardown for all testcases
49 * @return : teardown result, TRUE is success, FALSE is fail
50 */
CmsisTimerFuncTestSuiteTearDown(void)51 static BOOL CmsisTimerFuncTestSuiteTearDown(void)
52 {
53 printf("+-------------------------------------------+\n");
54 return TRUE;
55 }
56
CmsisTimerFunc001(void const * argument)57 static void CmsisTimerFunc001(void const *argument)
58 {
59 (void)argument;
60 return;
61 }
62
CmsisTimerFunc002(void const * argument)63 static void CmsisTimerFunc002(void const *argument)
64 {
65 (void)argument;
66 g_cmsisTestTimeCount++;
67 return;
68 }
69
70 /**
71 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0100
72 * @tc.name : timer operation for creat with parameter osTimerOnce
73 * @tc.desc : [C- SOFTWARE -0200]
74 */
75 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew001, Function | MediumTest | Level1)
76 {
77 osTimerId_t id;
78 UINT32 value=0xffff;
79 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
80 TEST_ASSERT_NOT_NULL(id);
81 (void)osTimerDelete(id);
82 osDelay(DELAY_TICKS_5);
83 };
84
85 /**
86 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0200
87 * @tc.name : timer operation for creat with parameter osTimerPeriodic
88 * @tc.desc : [C- SOFTWARE -0200]
89 */
90 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew002, Function | MediumTest | Level1)
91 {
92 osTimerId_t id;
93 UINT32 value=0xffff;
94 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
95 TEST_ASSERT_NOT_NULL(id);
96 (void)osTimerDelete(id);
97 osDelay(DELAY_TICKS_5);
98 };
99
100 /**
101 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0300
102 * @tc.name : timer creat operation with NULL func and parameter osTimerOnce
103 * @tc.desc : [C- SOFTWARE -0200]
104 */
105 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew003, Function | MediumTest | Level1)
106 {
107 osTimerId_t id;
108 UINT32 value=0xffff;
109 id = osTimerNew(NULL, osTimerOnce, &value, NULL);
110 TEST_ASSERT_NULL(id);
111 osDelay(DELAY_TICKS_5);
112 };
113
114 /**
115 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0400
116 * @tc.name : timer creat operation with NULL func and parameter osTimerPeriodic
117 * @tc.desc : [C- SOFTWARE -0200]
118 */
119 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew004, Function | MediumTest | Level1)
120 {
121 osTimerId_t id;
122 UINT32 value=0xffff;
123 id = osTimerNew(NULL, osTimerPeriodic, &value, NULL);
124 TEST_ASSERT_NULL(id);
125 osDelay(DELAY_TICKS_5);
126 };
127
128 /**
129 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0500
130 * @tc.name : timer operation for invalid timer type
131 * @tc.desc : [C- SOFTWARE -0200]
132 */
133 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerNew005, Function | MediumTest | Level1)
134 {
135 osTimerId_t id;
136 UINT32 value=0xffff;
137 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, INVALID_TIMER_TYPE, &value, NULL);
138 TEST_ASSERT_NULL(id);
139 osDelay(DELAY_TICKS_5);
140 };
141
142 /**
143 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0600
144 * @tc.name : timer operation for start with parameter osTimerOnce
145 * @tc.desc : [C- SOFTWARE -0200]
146 */
147 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart001, Function | MediumTest | Level1)
148 {
149 UINT32 uwRet;
150 osTimerId_t id;
151 UINT32 value=0xffff;
152 UINT32 millisec = MILLISEC_NUM_INT4;
153 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
154 TEST_ASSERT_NOT_NULL(id);
155 uwRet = osTimerStart(id, millisec);
156 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
157 (void)osTimerDelete(id);
158 };
159
160 /**
161 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0700
162 * @tc.name : timer operation for start with parameter osTimerPeriodic
163 * @tc.desc : [C- SOFTWARE -0200]
164 */
165 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart002, Function | MediumTest | Level1)
166 {
167 UINT32 uwRet;
168 osTimerId_t id;
169 UINT32 value=0xffff;
170 UINT32 millisec = MILLISEC_NUM_INT4;
171 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
172 TEST_ASSERT_NOT_NULL(id);
173 uwRet = osTimerStart(id, millisec);
174 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
175 (void)osTimerDelete(id);
176 };
177
178 /**
179 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0800
180 * @tc.name : timer operation for start with callback func and parameter osTimerOnce
181 * @tc.desc : [C- SOFTWARE -0200]
182 */
183 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart003, Function | MediumTest | Level1)
184 {
185 UINT32 uwRet;
186 osTimerId_t id;
187 UINT32 value=0xffff;
188 UINT32 millisec = MILLISEC_NUM_INT4;
189 g_cmsisTestTimeCount = 0;
190 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc002, osTimerOnce, &value, NULL);
191 TEST_ASSERT_NOT_NULL(id);
192 uwRet = osTimerStart(id, millisec);
193 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
194
195 osDelay(DELAY_TICKS_10);
196 TEST_ASSERT_EQUAL_INT(1, g_cmsisTestTimeCount);
197 (void)osTimerDelete(id);
198 };
199
200 /**
201 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_0900
202 * @tc.name : timer operation for start with callback func and parameter osTimerPeriodic
203 * @tc.desc : [C- SOFTWARE -0200]
204 */
205 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart004, Function | MediumTest | Level1)
206 {
207 UINT32 uwRet;
208 osTimerId_t id;
209 UINT32 value=0xffff;
210 UINT32 millisec = MILLISEC_NUM_INT4;
211 g_cmsisTestTimeCount = 0;
212 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc002, osTimerPeriodic, &value, NULL);
213 TEST_ASSERT_NOT_NULL(id);
214 uwRet = osTimerStart(id, millisec);
215 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
216
217 osDelay(DELAY_TICKS_10);
218 TEST_ASSERT_EQUAL_INT(TIMER_PERIODIC_COUNT, g_cmsisTestTimeCount);
219 (void)osTimerDelete(id);
220 };
221
222 /**
223 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1000
224 * @tc.name : timer start operation with ticks = 0 and parameter osTimerOnce
225 * @tc.desc : [C- SOFTWARE -0200]
226 */
227 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart005, Function | MediumTest | Level1)
228 {
229 UINT32 uwRet;
230 osTimerId_t id;
231 UINT32 value=0xffff;
232 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
233 TEST_ASSERT_NOT_NULL(id);
234 uwRet = osTimerStart(id, 0);
235 TEST_ASSERT_EQUAL_INT(osErrorParameter, uwRet);
236 (void)osTimerDelete(id);
237 };
238
239 /**
240 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1100
241 * @tc.name : timer start operation with ticks = 0 and parameter osTimerPeriodic
242 * @tc.desc : [C- SOFTWARE -0200]
243 */
244 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart006, Function | MediumTest | Level1)
245 {
246 UINT32 uwRet;
247 osTimerId_t id;
248 UINT32 value=0xffff;
249 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
250 TEST_ASSERT_NOT_NULL(id);
251 uwRet = osTimerStart(id, 0);
252 TEST_ASSERT_EQUAL_INT(osErrorParameter, uwRet);
253 (void)osTimerDelete(id);
254 };
255
256 /**
257 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1200
258 * @tc.name : timer start operation with timer_id = NULL
259 * @tc.desc : [C- SOFTWARE -0200]
260 */
261 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStart007, Function | MediumTest | Level1)
262 {
263 UINT32 uwRet;
264 UINT32 millisec = MILLISEC_NUM_INT4;
265 uwRet = osTimerStart(NULL, millisec);
266 TEST_ASSERT_EQUAL_INT(osErrorParameter, uwRet);
267 };
268
269 /**
270 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1300
271 * @tc.name : timer operation for delete with parameter osTimerOnce
272 * @tc.desc : [C- SOFTWARE -0200]
273 */
274 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete001, Function | MediumTest | Level1)
275 {
276 UINT32 uwRet;
277 osTimerId_t id;
278 UINT32 value=0xffff;
279 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
280 TEST_ASSERT_NOT_NULL(id);
281
282 osDelay(1);
283 uwRet = osTimerDelete(id);
284 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
285 };
286
287 /**
288 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1400
289 * @tc.name : timer operation for delete with parameter osTimerPeriodic
290 * @tc.desc : [C- SOFTWARE -0200]
291 */
292 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete002, Function | MediumTest | Level1)
293 {
294 UINT32 uwRet;
295 osTimerId_t id;
296 UINT32 value=0xffff;
297 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
298 TEST_ASSERT_NOT_NULL(id);
299
300 osDelay(1);
301 uwRet = osTimerDelete(id);
302 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
303 };
304
305 /**
306 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1500
307 * @tc.name : timer operation for delete after osTimerStart with parameter osTimerOnce
308 * @tc.desc : [C- SOFTWARE -0200]
309 */
310 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete003, Function | MediumTest | Level1)
311 {
312 UINT32 uwRet;
313 osTimerId_t id;
314 UINT32 value=0xffff;
315 UINT32 millisec = MILLISEC_NUM_INT10;
316 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
317 TEST_ASSERT_NOT_NULL(id);
318
319 osTimerStart(id, millisec);
320 osDelay(1);
321 uwRet = osTimerDelete(id);
322 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
323 };
324
325 /**
326 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1600
327 * @tc.name : timer operation for delete after osTimerStart with parameter osTimerPeriodic
328 * @tc.desc : [C- SOFTWARE -0200]
329 */
330 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete004, Function | MediumTest | Level1)
331 {
332 UINT32 uwRet;
333 osTimerId_t id;
334 UINT32 value=0xffff;
335 UINT32 millisec = MILLISEC_NUM_INT10;
336 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
337 TEST_ASSERT_NOT_NULL(id);
338
339 osTimerStart(id, millisec);
340 osDelay(1);
341 uwRet = osTimerDelete(id);
342 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
343 };
344
345 /**
346 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1700
347 * @tc.name : timer delete operation with timer_id = NULL
348 * @tc.desc : [C- SOFTWARE -0200]
349 */
350 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerDelete005, Function | MediumTest | Level1)
351 {
352 UINT32 uwRet;
353 uwRet = osTimerDelete(NULL);
354 TEST_ASSERT_EQUAL_INT(osErrorParameter, uwRet);
355 };
356
357 /**
358 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1800
359 * @tc.name : timer operation for stop after osTimerStart with parameter osTimerOnce
360 * @tc.desc : [C- SOFTWARE -0200]
361 */
362 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop001, Function | MediumTest | Level1)
363 {
364 UINT32 uwRet;
365 osTimerId_t id;
366 UINT32 value=0xffff;
367 UINT32 millisec = MILLISEC_NUM_INT10;
368 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
369 TEST_ASSERT_NOT_NULL(id);
370
371 osTimerStart(id, millisec);
372 osDelay(1);
373 uwRet = osTimerStop(id);
374 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
375 (void)osTimerDelete(id);
376 };
377
378 /**
379 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_1900
380 * @tc.name : timer operation for stop after osTimerStart with parameter osTimerPeriodic
381 * @tc.desc : [C- SOFTWARE -0200]
382 */
383 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop002, Function | MediumTest | Level1)
384 {
385 UINT32 uwRet;
386 osTimerId_t id;
387 UINT32 value=0xffff;
388 UINT32 millisec = MILLISEC_NUM_INT10;
389 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
390 TEST_ASSERT_NOT_NULL(id);
391
392 osTimerStart(id, millisec);
393 osDelay(1);
394 uwRet = osTimerStop(id);
395 TEST_ASSERT_EQUAL_INT(osOK, uwRet);
396 (void)osTimerDelete(id);
397 };
398
399 /**
400 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2000
401 * @tc.name : timer operation for stop with parameter osTimerOnce
402 * @tc.desc : [C- SOFTWARE -0200]
403 */
404 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop003, Function | MediumTest | Level1)
405 {
406 UINT32 uwRet;
407 osTimerId_t id;
408 UINT32 value=0xffff;
409 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
410 TEST_ASSERT_NOT_NULL(id);
411
412 osDelay(1);
413 uwRet = osTimerStop(id);
414 TEST_ASSERT_EQUAL_INT(osErrorResource, uwRet);
415 (void)osTimerDelete(id);
416 };
417
418 /**
419 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2100
420 * @tc.name : timer operation for stop with parameter osTimerPeriodic
421 * @tc.desc : [C- SOFTWARE -0200]
422 */
423 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop004, Function | MediumTest | Level1)
424 {
425 UINT32 uwRet;
426 osTimerId_t id;
427 UINT32 value=0xffff;
428 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
429 TEST_ASSERT_NOT_NULL(id);
430
431 osDelay(1);
432 uwRet = osTimerStop(id);
433 TEST_ASSERT_EQUAL_INT(osErrorResource, uwRet);
434 (void)osTimerDelete(id);
435 };
436
437 /**
438 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2200
439 * @tc.name : timer stop operation with timer_id = NULL
440 * @tc.desc : [C- SOFTWARE -0200]
441 */
442 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerStop005, Function | MediumTest | Level1)
443 {
444 UINT32 uwRet;
445 uwRet = osTimerStop(NULL);
446 TEST_ASSERT_EQUAL_INT(osErrorParameter, uwRet);
447 };
448
449 /**
450 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2300
451 * @tc.name : timer operation for running
452 * @tc.desc : [C- SOFTWARE -0200]
453 */
454 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning001, Function | MediumTest | Level1)
455 {
456 UINT32 uwRet;
457 osTimerId_t id;
458 UINT32 value=0xffff;
459 id = osTimerNew ((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
460 TEST_ASSERT_NOT_NULL(id);
461
462 uwRet = osTimerIsRunning(id);
463 TEST_ASSERT_EQUAL_INT(0, uwRet);
464 (void)osTimerDelete(id);
465 };
466
467 /**
468 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2400
469 * @tc.name : timer operation for running after osTimerStart
470 * @tc.desc : [C- SOFTWARE -0200]
471 */
472 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning002, Function | MediumTest | Level1)
473 {
474 UINT32 uwRet;
475 osTimerId_t id;
476 UINT32 value=0xffff;
477 UINT32 millisec = MILLISEC_NUM_INT10;
478 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
479 TEST_ASSERT_NOT_NULL(id);
480
481 osTimerStart(id, millisec);
482 uwRet = osTimerIsRunning(id);
483 TEST_ASSERT_EQUAL_INT(1, uwRet);
484 (void)osTimerDelete(id);
485 };
486
487 /**
488 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2500
489 * @tc.name : timer operation for running after osTimerStart and osTimerStop
490 * @tc.desc : [C- SOFTWARE -0200]
491 */
492 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning003, Function | MediumTest | Level1)
493 {
494 UINT32 uwRet;
495 osTimerId_t id;
496 UINT32 value=0xffff;
497 UINT32 millisec = MILLISEC_NUM_INT10;
498 id = osTimerNew ((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
499 TEST_ASSERT_NOT_NULL(id);
500
501 osTimerStart(id, millisec);
502 osTimerStop(id);
503
504 uwRet = osTimerIsRunning(id);
505 TEST_ASSERT_EQUAL_INT(0, uwRet);
506 (void)osTimerDelete(id);
507 };
508
509 /**
510 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2600
511 * @tc.name : timer operation for running after osTimerStart and osTimerDelete
512 * @tc.desc : [C- SOFTWARE -0200]
513 */
514 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning004, Function | MediumTest | Level1)
515 {
516 UINT32 uwRet;
517 osTimerId_t id;
518 UINT32 value=0xffff;
519 UINT32 millisec = MILLISEC_NUM_INT10;
520 id = osTimerNew ((osTimerFunc_t)CmsisTimerFunc001, osTimerOnce, &value, NULL);
521 TEST_ASSERT_NOT_NULL(id);
522
523 osTimerStart(id, millisec);
524 osTimerDelete(id);
525 uwRet = osTimerIsRunning(id);
526 TEST_ASSERT_EQUAL_INT(0, uwRet);
527 };
528
529 /**
530 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2700
531 * @tc.name : timer operation for running with parameter osTimerPeriodic
532 * @tc.desc : [C- SOFTWARE -0200]
533 */
534 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning005, Function | MediumTest | Level1)
535 {
536 UINT32 uwRet;
537 osTimerId_t id;
538 UINT32 value=0xffff;
539 id = osTimerNew ((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
540 TEST_ASSERT_NOT_NULL(id);
541
542 uwRet = osTimerIsRunning(id);
543 TEST_ASSERT_EQUAL_INT(0, uwRet);
544 (void)osTimerDelete(id);
545 };
546
547 /**
548 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2800
549 * @tc.name : timer operation for running after osTimerStart with parameter osTimerPeriodic
550 * @tc.desc : [C- SOFTWARE -0200]
551 */
552 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning006, Function | MediumTest | Level1)
553 {
554 UINT32 uwRet;
555 osTimerId_t id;
556 UINT32 value=0xffff;
557 UINT32 millisec = MILLISEC_NUM_INT10;
558 id = osTimerNew((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
559 TEST_ASSERT_NOT_NULL(id);
560
561 osTimerStart(id, millisec);
562 uwRet = osTimerIsRunning(id);
563 TEST_ASSERT_EQUAL_INT(1, uwRet);
564 (void)osTimerDelete(id);
565 };
566
567 /**
568 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_2900
569 * @tc.name : timer operation for running after osTimerStart and osTimerStop with parameter osTimerPeriodic
570 * @tc.desc : [C- SOFTWARE -0200]
571 */
572 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning007, Function | MediumTest | Level1)
573 {
574 UINT32 uwRet;
575 osTimerId_t id;
576 UINT32 value=0xffff;
577 UINT32 millisec = MILLISEC_NUM_INT10;
578 id = osTimerNew ((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
579 TEST_ASSERT_NOT_NULL(id);
580
581 osTimerStart(id, millisec);
582 osTimerStop(id);
583
584 uwRet = osTimerIsRunning(id);
585 TEST_ASSERT_EQUAL_INT(0, uwRet);
586 (void)osTimerDelete(id);
587 };
588
589 /**
590 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3000
591 * @tc.name : timer operation for running after osTimerStart and osTimerDelete with parameter osTimerPeriodic
592 * @tc.desc : [C- SOFTWARE -0200]
593 */
594 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning008, Function | MediumTest | Level1)
595 {
596 UINT32 uwRet;
597 osTimerId_t id;
598 UINT32 value=0xffff;
599 UINT32 millisec = MILLISEC_NUM_INT10;
600 id = osTimerNew ((osTimerFunc_t)CmsisTimerFunc001, osTimerPeriodic, &value, NULL);
601 TEST_ASSERT_NOT_NULL(id);
602
603 osTimerStart(id, millisec);
604 osTimerDelete(id);
605 uwRet = osTimerIsRunning(id);
606 TEST_ASSERT_EQUAL_INT(0, uwRet);
607 };
608
609 /**
610 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3100
611 * @tc.name : timer running inquiry with timer_id = NULL
612 * @tc.desc : [C- SOFTWARE -0200]
613 */
614 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsTimerIsRunning009, Function | MediumTest | Level1)
615 {
616 UINT32 uwRet;
617 uwRet = osTimerIsRunning(NULL);
618 TEST_ASSERT_EQUAL_INT(0, uwRet);
619 };
620
621 /**
622 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3200
623 * @tc.name : os operation for get tick freq
624 * @tc.desc : [C- SOFTWARE -0200]
625 */
626 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsKernelGetTickFreq001, Function | MediumTest | Level1)
627 {
628 UINT32 uwRet;
629 uwRet = osKernelGetTickFreq();
630 TEST_ASSERT_EQUAL_INT(LOSCFG_BASE_CORE_TICK_PER_SECOND, uwRet);
631 };
632
633 /**
634 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3300
635 * @tc.name : os operation for get sys time freq
636 * @tc.desc : [C- SOFTWARE -0200]
637 */
638 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsKernelGetSysTimerFreq001, Function | MediumTest | Level1)
639 {
640 UINT32 uwRet;
641 uwRet = osKernelGetSysTimerFreq();
642 TEST_ASSERT_EQUAL_INT(OS_SYS_CLOCK, uwRet);
643 };
644
645 /**
646 * @tc.number : SUB_KERNEL_CMSIS_TIMER_OPERATION_3400
647 * @tc.name : os operation for get sys time count
648 * @tc.desc : [C- SOFTWARE -0200]
649 */
650 LITE_TEST_CASE(CmsisTimerFuncTestSuite, testOsKernelGetSysTimerCount001, Function | MediumTest | Level1)
651 {
652 UINT32 uwRet;
653 uwRet = osKernelGetSysTimerCount();
654 TEST_ASSERT_GREATER_THAN_UINT32(0, uwRet);
655 };
656
657 RUN_TEST_SUITE(CmsisTimerFuncTestSuite);
658