1 /*
2 * This file is part of the openHiTLS project.
3 *
4 * openHiTLS is licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 *
8 * http://license.coscl.org.cn/MulanPSL2
9 *
10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13 * See the Mulan PSL v2 for more details.
14 */
15
16 /* BEGIN_HEADER */
17
18 #include <unistd.h>
19 #include <stdlib.h>
20 #include <pthread.h>
21 #include <string.h>
22 #include "bsl_sal.h"
23 #include "bsl_params.h"
24 #include "bsl_err.h"
25 #include "bsl_log.h"
26 /* END_HEADER */
27
28
29 /* BEGIN_CASE */
SDV_BSL_BSL_PARAM_InitValue_API_TC001()30 void SDV_BSL_BSL_PARAM_InitValue_API_TC001()
31 {
32 BSL_Param param = {0};
33 int32_t val = 1;
34 bool valBool = true;
35 int32_t *valPtr = &val;
36 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 0, BSL_PARAM_TYPE_UINT32,
37 &val, sizeof(val)), BSL_PARAMS_INVALID_KEY);
38 ASSERT_EQ(BSL_PARAM_InitValue(NULL, 1, BSL_PARAM_TYPE_UINT32, &val, sizeof(val)), BSL_INVALID_ARG);
39 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_UINT32, NULL, sizeof(val)), BSL_INVALID_ARG);
40 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, 100, &val, sizeof(val)), BSL_PARAMS_INVALID_TYPE);
41 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_UINT32, &val, sizeof(val)), BSL_SUCCESS);
42 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_BOOL, &valBool, sizeof(valBool)), BSL_SUCCESS);
43 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_FUNC_PTR, valPtr, 0), BSL_SUCCESS);
44 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_CTX_PTR, valPtr, 0), BSL_SUCCESS);
45 valPtr = NULL;
46 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_FUNC_PTR, valPtr, 0), BSL_SUCCESS);
47 EXIT:
48 return;
49 }
50 /* END_CASE */
51
52 /* BEGIN_CASE */
SDV_BSL_BSL_PARAM_SetValue_API_TC001()53 void SDV_BSL_BSL_PARAM_SetValue_API_TC001()
54 {
55 BSL_Param param = {0};
56 int32_t val = 1;
57 bool valBool = true;
58 int32_t *valPtr = &val;
59 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_UINT32, &val, sizeof(val)), BSL_SUCCESS);
60 ASSERT_EQ(BSL_PARAM_SetValue(¶m, 0, BSL_PARAM_TYPE_UINT32, &val, sizeof(val)), BSL_PARAMS_INVALID_KEY);
61 ASSERT_EQ(BSL_PARAM_SetValue(NULL, 1, BSL_PARAM_TYPE_UINT32, &val, sizeof(val)), BSL_INVALID_ARG);
62 ASSERT_EQ(BSL_PARAM_SetValue(¶m, 2, BSL_PARAM_TYPE_UINT32, &val, sizeof(val)), BSL_PARAMS_MISMATCH);
63 ASSERT_EQ(BSL_PARAM_SetValue(¶m, 1, BSL_PARAM_TYPE_UINT32, &val, 5), BSL_INVALID_ARG);
64 ASSERT_EQ(BSL_PARAM_SetValue(¶m, 1, BSL_PARAM_TYPE_UINT32, NULL, sizeof(val)), BSL_INVALID_ARG);
65 val = 4;
66 ASSERT_EQ(BSL_PARAM_SetValue(¶m, 1, BSL_PARAM_TYPE_OCTETS_PTR, &val, sizeof(val)), BSL_PARAMS_MISMATCH);
67 ASSERT_EQ(BSL_PARAM_SetValue(¶m, 1, BSL_PARAM_TYPE_UINT32, &val, sizeof(val)), BSL_SUCCESS);
68 int32_t retVal = 0;
69 uint32_t retValLen = sizeof(retVal);
70 ASSERT_EQ(BSL_PARAM_GetValue(¶m, 1, BSL_PARAM_TYPE_UINT32, &retVal, &retValLen), BSL_SUCCESS);
71 ASSERT_EQ(retVal, val);
72
73 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_BOOL, &valBool, sizeof(valBool)), BSL_SUCCESS);
74 valBool = false;
75 ASSERT_EQ(BSL_PARAM_SetValue(¶m, 1, BSL_PARAM_TYPE_BOOL, &valBool, sizeof(valBool)), BSL_SUCCESS);
76 uint32_t boolSize = sizeof(valBool);
77 ASSERT_EQ(BSL_PARAM_GetValue(¶m, 1, BSL_PARAM_TYPE_BOOL, &valBool, &boolSize), BSL_SUCCESS);
78 ASSERT_EQ(valBool, false);
79
80 ASSERT_EQ(BSL_PARAM_InitValue(¶m, 1, BSL_PARAM_TYPE_FUNC_PTR, valPtr, 0), BSL_SUCCESS);
81 *valPtr = 0;
82 ASSERT_EQ(BSL_PARAM_SetValue(¶m, 1, BSL_PARAM_TYPE_FUNC_PTR, valPtr, 0), BSL_SUCCESS);
83 ASSERT_EQ(BSL_PARAM_GetPtrValue(¶m, 1, BSL_PARAM_TYPE_FUNC_PTR, (void **)&valPtr, NULL), BSL_SUCCESS);
84 ASSERT_EQ(*valPtr, 0);
85
86 EXIT:
87 return;
88 }
89 /* END_CASE */
90
91 /* BEGIN_CASE */
SDV_BSL_BSL_PARAM_FindParam_API_TC001()92 void SDV_BSL_BSL_PARAM_FindParam_API_TC001()
93 {
94 BSL_Param param[6] = {0};
95 int32_t val = 1;
96 bool valBool = true;
97 int32_t *valPtr = &val;
98
99 ASSERT_EQ(BSL_PARAM_InitValue(¶m[0], 1, BSL_PARAM_TYPE_UINT32, &val, sizeof(val)), BSL_SUCCESS);
100 ASSERT_EQ(BSL_PARAM_InitValue(¶m[1], 2, BSL_PARAM_TYPE_BOOL, &valBool, sizeof(valBool)), BSL_SUCCESS);
101 ASSERT_EQ(BSL_PARAM_InitValue(¶m[2], 3, BSL_PARAM_TYPE_FUNC_PTR, valPtr, 0), BSL_SUCCESS);
102 ASSERT_EQ(BSL_PARAM_InitValue(¶m[3], 4, BSL_PARAM_TYPE_CTX_PTR, valPtr, 0), BSL_SUCCESS);
103
104 BSL_Param *temp = NULL;
105 temp = BSL_PARAM_FindParam(param, 1);
106 ASSERT_EQ(temp, ¶m[0]);
107 temp = BSL_PARAM_FindParam(param, 2);
108 ASSERT_EQ(temp, ¶m[1]);
109 temp = BSL_PARAM_FindParam(param, 5);
110 ASSERT_EQ(temp, NULL);
111
112 EXIT:
113 return;
114 }
115 /* END_CASE */
116