1d9f0492fSopenharmony_ci/*
2d9f0492fSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3d9f0492fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4d9f0492fSopenharmony_ci * you may not use this file except in compliance with the License.
5d9f0492fSopenharmony_ci * You may obtain a copy of the License at
6d9f0492fSopenharmony_ci *
7d9f0492fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8d9f0492fSopenharmony_ci *
9d9f0492fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10d9f0492fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11d9f0492fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12d9f0492fSopenharmony_ci * See the License for the specific language governing permissions and
13d9f0492fSopenharmony_ci * limitations under the License.
14d9f0492fSopenharmony_ci */
15d9f0492fSopenharmony_ci
16d9f0492fSopenharmony_ci#include "gtest/gtest.h"
17d9f0492fSopenharmony_ci
18d9f0492fSopenharmony_ci#include "init_param.h"
19d9f0492fSopenharmony_ci#include "init_utils.h"
20d9f0492fSopenharmony_ci#include "parameter.h"
21d9f0492fSopenharmony_ci#include "param_comm.h"
22d9f0492fSopenharmony_ci#include "param_stub.h"
23d9f0492fSopenharmony_ci#ifndef OHOS_LITE
24d9f0492fSopenharmony_ci#include "param_wrapper.h"
25d9f0492fSopenharmony_ci#include "parameters.h"
26d9f0492fSopenharmony_ci#endif
27d9f0492fSopenharmony_ci#include "sysversion.h"
28d9f0492fSopenharmony_ci#include "sysparam_errno.h"
29d9f0492fSopenharmony_ci
30d9f0492fSopenharmony_ciusing namespace testing::ext;
31d9f0492fSopenharmony_ci
32d9f0492fSopenharmony_cinamespace OHOS {
33d9f0492fSopenharmony_ciconstexpr int TEST_VALUE = 101;
34d9f0492fSopenharmony_ciclass SysparaUnitTest : public testing::Test {
35d9f0492fSopenharmony_cipublic:
36d9f0492fSopenharmony_ci    static void SetUpTestCase() {}
37d9f0492fSopenharmony_ci    static void TearDownTestCase() {}
38d9f0492fSopenharmony_ci    void SetUp()
39d9f0492fSopenharmony_ci    {
40d9f0492fSopenharmony_ci        SetTestPermissionResult(0);
41d9f0492fSopenharmony_ci    }
42d9f0492fSopenharmony_ci    void TearDown() {}
43d9f0492fSopenharmony_ci};
44d9f0492fSopenharmony_ci
45d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest001, TestSize.Level0)
46d9f0492fSopenharmony_ci{
47d9f0492fSopenharmony_ci    printf("Device type =%s\n", GetDeviceType());
48d9f0492fSopenharmony_ci    printf("Manufacture =%s\n", GetManufacture());
49d9f0492fSopenharmony_ci    printf("GetBrand =%s\n", GetBrand());
50d9f0492fSopenharmony_ci    printf("MarketName =%s\n", GetMarketName());
51d9f0492fSopenharmony_ci    printf("ProductSeries =%s\n", GetProductSeries());
52d9f0492fSopenharmony_ci    printf("ProductModel =%s\n", GetProductModel());
53d9f0492fSopenharmony_ci    printf("SoftwareModel =%s\n", GetSoftwareModel());
54d9f0492fSopenharmony_ci    printf("HardwareModel =%s\n", GetHardwareModel());
55d9f0492fSopenharmony_ci    printf("Software profile =%s\n", GetHardwareProfile());
56d9f0492fSopenharmony_ci    printf("Serial =%s\n", GetSerial());
57d9f0492fSopenharmony_ci    printf("OS full name =%s\n", GetOSFullName());
58d9f0492fSopenharmony_ci    printf("OS Release type =%s\n", GetOsReleaseType());
59d9f0492fSopenharmony_ci    printf("Display version =%s\n", GetDisplayVersion());
60d9f0492fSopenharmony_ci    printf("bootloader version =%s\n", GetBootloaderVersion());
61d9f0492fSopenharmony_ci    printf("secure patch level =%s\n", GetSecurityPatchTag());
62d9f0492fSopenharmony_ci}
63d9f0492fSopenharmony_ci
64d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest001_1, TestSize.Level0)
65d9f0492fSopenharmony_ci{
66d9f0492fSopenharmony_ci    printf("secure patch level =%s\n", GetSecurityPatchTag());
67d9f0492fSopenharmony_ci    printf("abi list =%s\n", GetAbiList());
68d9f0492fSopenharmony_ci    printf("first api version =%d\n", GetFirstApiVersion());
69d9f0492fSopenharmony_ci    printf("SDK api version =%d\n", GetSdkApiVersion());
70d9f0492fSopenharmony_ci    printf("Incremental version = %s\n", GetIncrementalVersion());
71d9f0492fSopenharmony_ci    printf("formal id =%s\n", GetVersionId());
72d9f0492fSopenharmony_ci    printf("build type =%s\n", GetBuildType());
73d9f0492fSopenharmony_ci    printf("build user =%s\n", GetBuildUser());
74d9f0492fSopenharmony_ci    printf("Build host = %s\n", GetBuildHost());
75d9f0492fSopenharmony_ci    printf("build time =%s\n", GetBuildTime());
76d9f0492fSopenharmony_ci    printf("build root later..., %s\n", GetBuildRootHash());
77d9f0492fSopenharmony_ci}
78d9f0492fSopenharmony_ci
79d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest001_2, TestSize.Level0)
80d9f0492fSopenharmony_ci{
81d9f0492fSopenharmony_ci    EXPECT_STRNE(GetDeviceType(), nullptr);
82d9f0492fSopenharmony_ci    EXPECT_STRNE(GetManufacture(), nullptr);
83d9f0492fSopenharmony_ci    EXPECT_STRNE(GetBrand(), nullptr);
84d9f0492fSopenharmony_ci    EXPECT_STRNE(GetMarketName(), nullptr);
85d9f0492fSopenharmony_ci    EXPECT_STRNE(GetProductSeries(), nullptr);
86d9f0492fSopenharmony_ci    EXPECT_STRNE(GetProductModel(), nullptr);
87d9f0492fSopenharmony_ci    EXPECT_STRNE(GetSoftwareModel(), nullptr);
88d9f0492fSopenharmony_ci    EXPECT_STRNE(GetHardwareModel(), nullptr);
89d9f0492fSopenharmony_ci    EXPECT_STRNE(GetHardwareProfile(), nullptr);
90d9f0492fSopenharmony_ci    EXPECT_STRNE(GetOSFullName(), nullptr);
91d9f0492fSopenharmony_ci    EXPECT_STRNE(GetOsReleaseType(), nullptr);
92d9f0492fSopenharmony_ci    EXPECT_STRNE(GetDisplayVersion(), nullptr);
93d9f0492fSopenharmony_ci    EXPECT_STRNE(GetBootloaderVersion(), nullptr);
94d9f0492fSopenharmony_ci    EXPECT_STRNE(GetSecurityPatchTag(), nullptr);
95d9f0492fSopenharmony_ci}
96d9f0492fSopenharmony_ci
97d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest001_3, TestSize.Level0)
98d9f0492fSopenharmony_ci{
99d9f0492fSopenharmony_ci    EXPECT_STRNE(GetSecurityPatchTag(), nullptr);
100d9f0492fSopenharmony_ci    EXPECT_STRNE(GetAbiList(), nullptr);
101d9f0492fSopenharmony_ci    EXPECT_GT(GetFirstApiVersion(), 0);
102d9f0492fSopenharmony_ci    EXPECT_GT(GetSdkApiVersion(), 0);
103d9f0492fSopenharmony_ci    EXPECT_STRNE(GetIncrementalVersion(), nullptr);
104d9f0492fSopenharmony_ci    EXPECT_STRNE(GetVersionId(), nullptr);
105d9f0492fSopenharmony_ci    EXPECT_STRNE(GetBuildType(), nullptr);
106d9f0492fSopenharmony_ci    EXPECT_STRNE(GetBuildUser(), nullptr);
107d9f0492fSopenharmony_ci    EXPECT_STRNE(GetBuildHost(), nullptr);
108d9f0492fSopenharmony_ci    EXPECT_STRNE(GetBuildTime(), nullptr);
109d9f0492fSopenharmony_ci    EXPECT_STRNE(GetBuildRootHash(), nullptr);
110d9f0492fSopenharmony_ci}
111d9f0492fSopenharmony_ci
112d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest002, TestSize.Level0)
113d9f0492fSopenharmony_ci{
114d9f0492fSopenharmony_ci    char key1[] = "test.ro.sys.version";
115d9f0492fSopenharmony_ci    char value1[] = "set read only key";
116d9f0492fSopenharmony_ci    int ret = SetParameter(key1, value1);
117d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_SUCCESS);
118d9f0492fSopenharmony_ci    ret = SetParameter(nullptr, nullptr);
119d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_INVALID);
120d9f0492fSopenharmony_ci}
121d9f0492fSopenharmony_ci
122d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest003, TestSize.Level0)
123d9f0492fSopenharmony_ci{
124d9f0492fSopenharmony_ci    char key2[] = "rw.sys.version*%version";
125d9f0492fSopenharmony_ci    char value2[] = "set value with illegal key";
126d9f0492fSopenharmony_ci    int ret = SetParameter(key2, value2);
127d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_INVALID);
128d9f0492fSopenharmony_ci}
129d9f0492fSopenharmony_ci
130d9f0492fSopenharmony_ci/* key = 32 */
131d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest004, TestSize.Level0)
132d9f0492fSopenharmony_ci{
133d9f0492fSopenharmony_ci    char key3[] = "rw.sys.version.utilskvparameter0";
134d9f0492fSopenharmony_ci    char value3[] = "set with key = 32";
135d9f0492fSopenharmony_ci    int ret = SetParameter(key3, value3);
136d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_SUCCESS);
137d9f0492fSopenharmony_ci}
138d9f0492fSopenharmony_ci
139d9f0492fSopenharmony_ci/* value > 128 */
140d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest005, TestSize.Level0)
141d9f0492fSopenharmony_ci{
142d9f0492fSopenharmony_ci    char key4[] = "rw.sys.version.version";
143d9f0492fSopenharmony_ci    char value4[] = "rw.sys.version.version.version.version flash_offset = *(hi_u32 *)DT_SetGetU32(&g_Element[0], 0)a\
144d9f0492fSopenharmony_ci    size = *(hi_u32 *)DT_SetGetU32(&g_Element[1], 0)a";
145d9f0492fSopenharmony_ci    int ret = SetParameter(key4, value4);
146d9f0492fSopenharmony_ci    EXPECT_EQ(ret, SYSPARAM_INVALID_VALUE);
147d9f0492fSopenharmony_ci}
148d9f0492fSopenharmony_ci
149d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest006, TestSize.Level0)
150d9f0492fSopenharmony_ci{
151d9f0492fSopenharmony_ci    char key1[] = "rw.product.not.exist";
152d9f0492fSopenharmony_ci    char value1[64] = {0};
153d9f0492fSopenharmony_ci    char defValue1[] = "value of key not exist...";
154d9f0492fSopenharmony_ci    int ret = GetParameter(key1, defValue1, value1, 64);
155d9f0492fSopenharmony_ci    EXPECT_EQ(ret, static_cast<int>(strlen(defValue1)));
156d9f0492fSopenharmony_ci}
157d9f0492fSopenharmony_ci
158d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest007, TestSize.Level0)
159d9f0492fSopenharmony_ci{
160d9f0492fSopenharmony_ci    char key2[] = "rw.sys.version.version.version.version";
161d9f0492fSopenharmony_ci    char value2[64] = {0};
162d9f0492fSopenharmony_ci    char defValue2[] = "value of key > 32 ...";
163d9f0492fSopenharmony_ci    int ret = GetParameter(key2, defValue2, value2, 64);
164d9f0492fSopenharmony_ci    EXPECT_EQ(ret, static_cast<int>(strlen(defValue2)));
165d9f0492fSopenharmony_ci}
166d9f0492fSopenharmony_ci
167d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest008, TestSize.Level0)
168d9f0492fSopenharmony_ci{
169d9f0492fSopenharmony_ci    char key4[] = "test.rw.sys.version";
170d9f0492fSopenharmony_ci    char* value4 = nullptr;
171d9f0492fSopenharmony_ci    char defValue3[] = "value of key > 32 ...";
172d9f0492fSopenharmony_ci    int ret = GetParameter(key4, defValue3, value4, 0);
173d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_INVALID);
174d9f0492fSopenharmony_ci}
175d9f0492fSopenharmony_ci
176d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest009, TestSize.Level0)
177d9f0492fSopenharmony_ci{
178d9f0492fSopenharmony_ci    char key5[] = "test.rw.product.type.2222222";
179d9f0492fSopenharmony_ci    char value5[] = "rw.sys.version.version.version.version     \
180d9f0492fSopenharmony_ci    flash_offset = *(hi_u32 *)DT_SetGetU32(&g_Element[0], 0)";
181d9f0492fSopenharmony_ci    int ret = SetParameter(key5, value5);
182d9f0492fSopenharmony_ci    EXPECT_EQ(ret, SYSPARAM_INVALID_VALUE);
183d9f0492fSopenharmony_ci    char valueGet[2] = {0};
184d9f0492fSopenharmony_ci    char defValue3[] = "value of key > 32 ...";
185d9f0492fSopenharmony_ci    ret = GetParameter(key5, defValue3, valueGet, 2);
186d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_INVALID);
187d9f0492fSopenharmony_ci}
188d9f0492fSopenharmony_ci
189d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0010, TestSize.Level0)
190d9f0492fSopenharmony_ci{
191d9f0492fSopenharmony_ci    char key1[] = "test.rw.sys.version";
192d9f0492fSopenharmony_ci    char value1[] = "10.1.0";
193d9f0492fSopenharmony_ci    int ret = SetParameter(key1, value1);
194d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
195d9f0492fSopenharmony_ci    ret = SystemWriteParam(key1, value1);
196d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
197d9f0492fSopenharmony_ci    char valueGet1[32] = {0};
198d9f0492fSopenharmony_ci    ret = GetParameter(key1, "version=10.1.0", valueGet1, 32);
199d9f0492fSopenharmony_ci    EXPECT_EQ(ret, static_cast<int>(strlen(valueGet1)));
200d9f0492fSopenharmony_ci
201d9f0492fSopenharmony_ci    char key2[] = "test.rw.product.type";
202d9f0492fSopenharmony_ci    char value2[] = "wifi_iot";
203d9f0492fSopenharmony_ci    ret = SetParameter(key2, value2);
204d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
205d9f0492fSopenharmony_ci    ret = SystemWriteParam(key2, value2);
206d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
207d9f0492fSopenharmony_ci    char valueGet2[32] = {0};
208d9f0492fSopenharmony_ci    ret = GetParameter(key2, "version=10.1.0", valueGet2, 32);
209d9f0492fSopenharmony_ci    EXPECT_EQ(ret, static_cast<int>(strlen(valueGet2)));
210d9f0492fSopenharmony_ci
211d9f0492fSopenharmony_ci    char key3[] = "test.rw.product.manufacturer";
212d9f0492fSopenharmony_ci    char value3[] = "TEST MANUFACTURER";
213d9f0492fSopenharmony_ci    ret = SetParameter(key3, value3);
214d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
215d9f0492fSopenharmony_ci    ret = SystemWriteParam(key3, value3);
216d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
217d9f0492fSopenharmony_ci    char valueGet3[32] = {0};
218d9f0492fSopenharmony_ci    ret = GetParameter(key3, "version=10.1.0", valueGet3, 32);
219d9f0492fSopenharmony_ci    EXPECT_EQ(ret, static_cast<int>(strlen(valueGet3)));
220d9f0492fSopenharmony_ci
221d9f0492fSopenharmony_ci    char key4[] = "test.rw.product.marketname";
222d9f0492fSopenharmony_ci    char value4[] = "TEST MARKETNAME";
223d9f0492fSopenharmony_ci    ret = SetParameter(key4, value4);
224d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
225d9f0492fSopenharmony_ci    ret = SystemWriteParam(key4, value4);
226d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
227d9f0492fSopenharmony_ci    char valueGet4[32] = {0};
228d9f0492fSopenharmony_ci    ret = GetParameter(key4, "version=10.1.0", valueGet4, 32);
229d9f0492fSopenharmony_ci    EXPECT_EQ(ret, static_cast<int>(strlen(valueGet4)));
230d9f0492fSopenharmony_ci}
231d9f0492fSopenharmony_ci
232d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0011, TestSize.Level0)
233d9f0492fSopenharmony_ci{
234d9f0492fSopenharmony_ci    char key1[] = "test.rw.sys.version.wait1";
235d9f0492fSopenharmony_ci    char value1[] = "10.1.0";
236d9f0492fSopenharmony_ci    int ret = SetParameter(key1, value1);
237d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
238d9f0492fSopenharmony_ci    ret = SystemWriteParam(key1, value1);
239d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
240d9f0492fSopenharmony_ci    ret = WaitParameter(key1, value1, 10);
241d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
242d9f0492fSopenharmony_ci    ret = WaitParameter(key1, "*", 10);
243d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
244d9f0492fSopenharmony_ci    char key2[] = "test.rw.sys.version.wait2";
245d9f0492fSopenharmony_ci    ret = WaitParameter(key2, "*", 1);
246d9f0492fSopenharmony_ci    EXPECT_EQ(ret, SYSPARAM_WAIT_TIMEOUT);
247d9f0492fSopenharmony_ci}
248d9f0492fSopenharmony_ci
249d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0012, TestSize.Level0)
250d9f0492fSopenharmony_ci{
251d9f0492fSopenharmony_ci    char key1[] = "test.rw.sys.version.version1";
252d9f0492fSopenharmony_ci    char value1[] = "10.1.0";
253d9f0492fSopenharmony_ci    int ret = SetParameter(key1, value1);
254d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
255d9f0492fSopenharmony_ci
256d9f0492fSopenharmony_ci    ret = SystemWriteParam(key1, value1);
257d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
258d9f0492fSopenharmony_ci    // success
259d9f0492fSopenharmony_ci    unsigned int handle = FindParameter(key1);
260d9f0492fSopenharmony_ci    EXPECT_NE(handle, static_cast<unsigned int>(-1));
261d9f0492fSopenharmony_ci    char valueGet1[32] = {0};
262d9f0492fSopenharmony_ci    ret = GetParameterValue(handle, valueGet1, 32);
263d9f0492fSopenharmony_ci    EXPECT_EQ(ret, static_cast<int>(strlen(valueGet1)));
264d9f0492fSopenharmony_ci    char nameGet1[32] = {0};
265d9f0492fSopenharmony_ci    ret = GetParameterName(handle, nameGet1, 32);
266d9f0492fSopenharmony_ci    EXPECT_EQ(ret, static_cast<int>(strlen(nameGet1)));
267d9f0492fSopenharmony_ci
268d9f0492fSopenharmony_ci    // fail
269d9f0492fSopenharmony_ci    char key2[] = "test.rw.sys.version.version2";
270d9f0492fSopenharmony_ci    handle = FindParameter(key2);
271d9f0492fSopenharmony_ci    EXPECT_EQ(handle, static_cast<unsigned int>(-1));
272d9f0492fSopenharmony_ci    ret = GetParameterValue(handle, valueGet1, 32);
273d9f0492fSopenharmony_ci    EXPECT_EQ(ret, SYSPARAM_NOT_FOUND);
274d9f0492fSopenharmony_ci    ret = GetParameterName(handle, nameGet1, 32);
275d9f0492fSopenharmony_ci    EXPECT_EQ(ret, SYSPARAM_NOT_FOUND);
276d9f0492fSopenharmony_ci    ret = GetParameterValue(handle, nullptr, 32);
277d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_INVALID);
278d9f0492fSopenharmony_ci    ret = GetParameterCommitId(handle);
279d9f0492fSopenharmony_ci    EXPECT_EQ(ret, -1);
280d9f0492fSopenharmony_ci}
281d9f0492fSopenharmony_ci
282d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0013, TestSize.Level0)
283d9f0492fSopenharmony_ci{
284d9f0492fSopenharmony_ci    long long int out = 0;
285d9f0492fSopenharmony_ci    unsigned long long int uout = 0;
286d9f0492fSopenharmony_ci    GetParameter_(nullptr, nullptr, nullptr, 0);
287d9f0492fSopenharmony_ci    EXPECT_EQ(GetIntParameter("test.int.get", 0) == -TEST_VALUE, 1);
288d9f0492fSopenharmony_ci    EXPECT_EQ(GetUintParameter("test.int.get", 0), 0);
289d9f0492fSopenharmony_ci    EXPECT_EQ(GetIntParameter("test.uint.get", 0), TEST_VALUE);
290d9f0492fSopenharmony_ci    EXPECT_EQ(GetUintParameter("test.uint.get", 0), TEST_VALUE);
291d9f0492fSopenharmony_ci    EXPECT_EQ(GetIntParameter("test.int.default", 10), 10); // key not find,value = default
292d9f0492fSopenharmony_ci    EXPECT_EQ(GetUintParameter("test.uint.default", 10), 10); // key not find,value = default
293d9f0492fSopenharmony_ci    EXPECT_EQ(IsValidParamValue(nullptr, 0), 0);
294d9f0492fSopenharmony_ci    EXPECT_EQ(IsValidParamValue("testvalue", strlen("testvalue") + 1), 1);
295d9f0492fSopenharmony_ci    EXPECT_EQ(StringToLL("0x11", &out), 0);
296d9f0492fSopenharmony_ci    EXPECT_EQ(StringToULL("0x11", &uout), 0);
297d9f0492fSopenharmony_ci    EXPECT_EQ(StringToLL("not vailed", &out), -1);
298d9f0492fSopenharmony_ci    EXPECT_EQ(StringToULL("not vailed", &uout), -1);
299d9f0492fSopenharmony_ci    char udid[UDID_LEN] = {0};
300d9f0492fSopenharmony_ci    GetDevUdid(udid, UDID_LEN);
301d9f0492fSopenharmony_ci    EXPECT_NE(GetMajorVersion(), 0);
302d9f0492fSopenharmony_ci    int ret = GetDevUdid(nullptr, UDID_LEN);
303d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_FAILURE);
304d9f0492fSopenharmony_ci    GetSeniorVersion();
305d9f0492fSopenharmony_ci    GetFeatureVersion();
306d9f0492fSopenharmony_ci    GetBuildVersion();
307d9f0492fSopenharmony_ci}
308d9f0492fSopenharmony_ci
309d9f0492fSopenharmony_ci#ifndef OHOS_LITE
310d9f0492fSopenharmony_ci// for test param_wrapper.cpp
311d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0014, TestSize.Level0)
312d9f0492fSopenharmony_ci{
313d9f0492fSopenharmony_ci    const std::string key1 = "test.int.get";
314d9f0492fSopenharmony_ci    OHOS::system::SetParameter(std::string("testKey"), std::string("testValue"));
315d9f0492fSopenharmony_ci    int v = OHOS::system::GetIntParameter(key1, 0);
316d9f0492fSopenharmony_ci    EXPECT_EQ(v, -TEST_VALUE);
317d9f0492fSopenharmony_ci    int8_t v1 = OHOS::system::GetIntParameter(key1, 0, -127, 128); // -127, 128 range
318d9f0492fSopenharmony_ci    EXPECT_EQ(v1, -TEST_VALUE);
319d9f0492fSopenharmony_ci    int16_t v2 = OHOS::system::GetIntParameter(key1, 0, -127, 128); // -127, 128 range
320d9f0492fSopenharmony_ci    EXPECT_EQ(v2, -TEST_VALUE);
321d9f0492fSopenharmony_ci    int32_t v3 = OHOS::system::GetIntParameter(key1, 0, -127, 128); // -127, 128 range
322d9f0492fSopenharmony_ci    EXPECT_EQ(v3, -TEST_VALUE);
323d9f0492fSopenharmony_ci    int64_t v4 = OHOS::system::GetIntParameter(key1, 0, -127, 128); // -127, 128 range
324d9f0492fSopenharmony_ci    EXPECT_EQ(v4, -TEST_VALUE);
325d9f0492fSopenharmony_ci
326d9f0492fSopenharmony_ci    int8_t v5 = OHOS::system::GetIntParameter(key1, 0, -10, 10); // -10, 10 range
327d9f0492fSopenharmony_ci    EXPECT_EQ(v5, 0);
328d9f0492fSopenharmony_ci
329d9f0492fSopenharmony_ci    const std::string key2 = "test.uint.get";
330d9f0492fSopenharmony_ci    uint8_t u1 = OHOS::system::GetUintParameter<uint8_t>(key2, 0, (uint8_t)255); // 255 max value
331d9f0492fSopenharmony_ci    EXPECT_EQ(u1, TEST_VALUE);
332d9f0492fSopenharmony_ci    uint16_t u2 = OHOS::system::GetUintParameter<uint16_t>(key2, 0,  (uint16_t)255); // 255 max value
333d9f0492fSopenharmony_ci    EXPECT_EQ(u2, TEST_VALUE);
334d9f0492fSopenharmony_ci    uint32_t u3 = OHOS::system::GetUintParameter<uint32_t>(key2, 0,  (uint32_t)255); // 255 max value
335d9f0492fSopenharmony_ci    EXPECT_EQ(u3, TEST_VALUE);
336d9f0492fSopenharmony_ci    uint64_t u4 = OHOS::system::GetUintParameter<uint64_t>(key2, 0,  (uint64_t)255); // 255 max value
337d9f0492fSopenharmony_ci    EXPECT_EQ(u4 == TEST_VALUE, 1);
338d9f0492fSopenharmony_ci    const std::string key3 = "test.uint.get3";
339d9f0492fSopenharmony_ci    u1 = OHOS::system::GetUintParameter<uint8_t>(key3, 0, (uint8_t)255); // 255 max value
340d9f0492fSopenharmony_ci    EXPECT_EQ(u1, 0);
341d9f0492fSopenharmony_ci    u1 = OHOS::system::GetUintParameter<uint8_t>(key2, 0, (uint8_t)10); // 10 max value
342d9f0492fSopenharmony_ci    EXPECT_EQ(u1, 0);
343d9f0492fSopenharmony_ci}
344d9f0492fSopenharmony_ci
345d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0015, TestSize.Level0)
346d9f0492fSopenharmony_ci{
347d9f0492fSopenharmony_ci    std::string type = OHOS::system::GetDeviceType();
348d9f0492fSopenharmony_ci    printf("device type %s \n", type.c_str());
349d9f0492fSopenharmony_ci
350d9f0492fSopenharmony_ci    const std::string key1 = "test.string.get";
351d9f0492fSopenharmony_ci    std::string v1 = OHOS::system::GetParameter(key1, "");
352d9f0492fSopenharmony_ci    EXPECT_EQ(strcmp(v1.c_str(), "101"), 0);
353d9f0492fSopenharmony_ci
354d9f0492fSopenharmony_ci    const std::string key2 = "test.string.get2";
355d9f0492fSopenharmony_ci    v1 = OHOS::system::GetParameter(key2, "test2");
356d9f0492fSopenharmony_ci    EXPECT_EQ(strcmp(v1.c_str(), "test2"), 0);
357d9f0492fSopenharmony_ci
358d9f0492fSopenharmony_ci    int ret = OHOS::system::GetStringParameter(key1, v1, "");
359d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
360d9f0492fSopenharmony_ci    EXPECT_EQ(strcmp(v1.c_str(), "101"), 0);
361d9f0492fSopenharmony_ci    ret = OHOS::system::GetStringParameter(key2, v1, "test2");
362d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
363d9f0492fSopenharmony_ci    EXPECT_EQ(strcmp(v1.c_str(), "test2"), 0);
364d9f0492fSopenharmony_ci}
365d9f0492fSopenharmony_ci
366d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0016, TestSize.Level0)
367d9f0492fSopenharmony_ci{
368d9f0492fSopenharmony_ci    const std::string key1 = "test.bool.get.true";
369d9f0492fSopenharmony_ci    bool ret = OHOS::system::GetBoolParameter(key1, false);
370d9f0492fSopenharmony_ci    EXPECT_EQ(ret, true);
371d9f0492fSopenharmony_ci    const std::string key2 = "test.bool.get.false";
372d9f0492fSopenharmony_ci    ret = OHOS::system::GetBoolParameter(key2, true);
373d9f0492fSopenharmony_ci    EXPECT_EQ(ret, false);
374d9f0492fSopenharmony_ci    const std::string key3 = "test.bool.get3";
375d9f0492fSopenharmony_ci    ret = OHOS::system::GetBoolParameter(key3, false);
376d9f0492fSopenharmony_ci    EXPECT_EQ(ret, false);
377d9f0492fSopenharmony_ci}
378d9f0492fSopenharmony_ci
379d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0017, TestSize.Level0)
380d9f0492fSopenharmony_ci{
381d9f0492fSopenharmony_ci    printf("distributionOS name =%s\n", GetDistributionOSName());
382d9f0492fSopenharmony_ci    EXPECT_STRNE(GetDistributionOSName(), nullptr);
383d9f0492fSopenharmony_ci    printf("distributionOS version =%s\n", GetDistributionOSVersion());
384d9f0492fSopenharmony_ci    EXPECT_STRNE(GetDistributionOSVersion(), nullptr);
385d9f0492fSopenharmony_ci    printf("distributionOS api version =%d\n", GetDistributionOSApiVersion());
386d9f0492fSopenharmony_ci    EXPECT_GT(GetDistributionOSApiVersion(), 0);
387d9f0492fSopenharmony_ci    printf("distributionOS name =%s\n", GetDistributionOSReleaseType());
388d9f0492fSopenharmony_ci    EXPECT_STRNE(GetDistributionOSReleaseType(), nullptr);
389d9f0492fSopenharmony_ci    printf("distributionOS name =%s\n", GetDistributionOSApiName());
390d9f0492fSopenharmony_ci}
391d9f0492fSopenharmony_ci#endif
392d9f0492fSopenharmony_ci
393d9f0492fSopenharmony_ciHWTEST_F(SysparaUnitTest, parameterTest0018, TestSize.Level0)
394d9f0492fSopenharmony_ci{
395d9f0492fSopenharmony_ci    char key1[] = "test.ro.sys.version";
396d9f0492fSopenharmony_ci    char value1[] = "set read only key";
397d9f0492fSopenharmony_ci    int ret = SetParameter(key1, value1);
398d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_SUCCESS);
399d9f0492fSopenharmony_ci    char key2[] = "persist.test.ro.sys.version";
400d9f0492fSopenharmony_ci    char value2[] = "set persist read only key";
401d9f0492fSopenharmony_ci    ret = SetParameter(key2, value2);
402d9f0492fSopenharmony_ci    EXPECT_EQ(ret, EC_SUCCESS);
403d9f0492fSopenharmony_ci    ret = SaveParameters();
404d9f0492fSopenharmony_ci    EXPECT_EQ(ret, 0);
405d9f0492fSopenharmony_ci}
406d9f0492fSopenharmony_ci}  // namespace OHOS
407