• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Hunan OpenValley Digital Industry Development 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 "It_los_queue.h"
17 
18 
HwiF01(VOID)19 static VOID HwiF01(VOID)
20 {
21     UINT32 ret;
22     CHAR buff1[QUEUE_SHORT_BUFFER_LENGTH] = "UniDSP";
23 
24     ret = LOS_QueueWriteCopyIsr(g_testQueueID01, buff1, QUEUE_BASE_MSGSIZE);
25     ICUNIT_ASSERT_EQUAL_VOID(ret, LOS_OK, ret);
26 }
27 
TaskF01(VOID)28 static VOID TaskF01(VOID)
29 {
30     UINT32 ret;
31     UINT32 msgSize = (UINT32)QUEUE_BASE_MSGSIZE;
32     CHAR buff[QUEUE_SHORT_BUFFER_LENGTH] = "UniDSP";
33     CHAR buff2[QUEUE_SHORT_BUFFER_LENGTH] = " ";
34 
35     ret = LOS_QueueReadCopy(g_testQueueID01, buff2, &msgSize, LOS_WAIT_FOREVER);
36     ICUNIT_ASSERT_EQUAL_VOID(ret, LOS_OK, ret);
37     for (UINT8 index = 0; index < QUEUE_BASE_MSGSIZE - 1; index++) { // 7, QUEUE_BASE_MSGSIZE - 1
38         ICUNIT_GOTO_EQUAL(*((CHAR *)(intptr_t)buff2 + index), buff[index],
39             *((CHAR *)(intptr_t)buff2 + index), EXIT);
40     }
41 
42 EXIT:
43     return;
44 }
45 
Testcase(VOID)46 static UINT32 Testcase(VOID)
47 {
48     UINT32 ret;
49     HWI_PRIOR_T hwiPrio = 3;
50     HWI_MODE_T mode = 0;
51     HwiIrqParam irqParam;
52 
53     ret = LOS_QueueCreate("Q1", QUEUE_BASE_NUM, &g_testQueueID01, 0, QUEUE_BASE_MSGSIZE);
54     ICUNIT_GOTO_EQUAL(ret, LOS_OK, ret, EXIT);
55 
56     (VOID)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam));
57     irqParam.pDevId = 0;
58     ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiF01, &irqParam);
59     ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret);
60 
61     TSK_INIT_PARAM_S task1 = { 0 };
62     task1.pfnTaskEntry = (TSK_ENTRY_FUNC)TaskF01;
63     task1.uwStackSize = TASK_STACK_SIZE_TEST;
64     task1.pcName = "Tsk001A";
65     task1.usTaskPrio = TASK_PRIO_TEST - 1;
66     task1.uwResved = LOS_TASK_STATUS_DETACHED;
67     g_testCount = 0;
68     ret = LOS_TaskCreate(&g_testTaskID01, &task1);
69     ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret);
70 
71     TestHwiTrigger(HWI_NUM_TEST);
72 
73 EXIT:
74     TestHwiDelete(HWI_NUM_TEST);
75     ret = LOS_QueueDelete(g_testQueueID01);
76     ICUNIT_ASSERT_EQUAL(ret, LOS_OK, ret);
77     return LOS_OK;
78 }
79 
ItLosQueueIsr014(VOID)80 VOID ItLosQueueIsr014(VOID)
81 {
82     TEST_ADD_CASE("ItLosQueueIsr014", Testcase, TEST_LOS, TEST_QUE, TEST_LEVEL1, TEST_FUNCTION);
83 }
84 
85