1 /* 2 * Copyright (c) 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 "gtest/gtest.h" 17 18 #include "parameter.h" 19 #include "sysparam_errno.h" 20 21 using namespace testing::ext; 22 23 namespace OHOS { 24 class SystemParameterNativeTest : public testing::Test { 25 public: SetUpTestCase()26 static void SetUpTestCase() {} TearDownTestCase()27 static void TearDownTestCase() {} SetUp()28 void SetUp() {} TearDown()29 void TearDown() {} 30 }; 31 32 HWTEST_F(SystemParameterNativeTest, parameterTest001, TestSize.Level0) 33 { 34 EXPECT_STRNE(GetDeviceType(), nullptr); 35 EXPECT_STRNE(GetManufacture(), nullptr); 36 EXPECT_STRNE(GetBrand(), nullptr); 37 EXPECT_STRNE(GetMarketName(), nullptr); 38 EXPECT_STRNE(GetProductSeries(), nullptr); 39 EXPECT_STRNE(GetProductModel(), nullptr); 40 EXPECT_STRNE(GetSoftwareModel(), nullptr); 41 EXPECT_STRNE(GetHardwareModel(), nullptr); 42 EXPECT_STRNE(GetHardwareProfile(), nullptr); 43 EXPECT_STRNE(GetSerial(), nullptr); 44 EXPECT_STRNE(GetOSFullName(), nullptr); 45 EXPECT_STRNE(GetOsReleaseType(), nullptr); 46 EXPECT_STRNE(GetDisplayVersion(), nullptr); 47 EXPECT_STRNE(GetBootloaderVersion(), nullptr); 48 EXPECT_STRNE(GetSecurityPatchTag(), nullptr); 49 } 50 51 HWTEST_F(SystemParameterNativeTest, parameterTest001_1, TestSize.Level0) 52 { 53 EXPECT_STRNE(GetSecurityPatchTag(), nullptr); 54 EXPECT_STRNE(GetAbiList(), nullptr); 55 EXPECT_GT(GetFirstApiVersion(), 0); 56 EXPECT_GT(GetSdkApiVersion(), 0); 57 EXPECT_STRNE(GetIncrementalVersion(), nullptr); 58 EXPECT_STRNE(GetVersionId(), nullptr); 59 EXPECT_STRNE(GetBuildType(), nullptr); 60 EXPECT_STRNE(GetBuildUser(), nullptr); 61 EXPECT_STRNE(GetBuildHost(), nullptr); 62 EXPECT_STRNE(GetBuildTime(), nullptr); 63 EXPECT_STRNE(GetBuildRootHash(), nullptr); 64 } 65 66 HWTEST_F(SystemParameterNativeTest, parameterTest002, TestSize.Level0) 67 { 68 char key1[] = "test.ro.sys.version"; 69 char value1[] = "set read only key"; 70 int ret = SetParameter(key1, value1); 71 EXPECT_EQ(ret, EC_SUCCESS); 72 } 73 74 HWTEST_F(SystemParameterNativeTest, parameterTest003, TestSize.Level0) 75 { 76 char key2[] = "rw.sys.version*%version"; 77 char value2[] = "set value with illegal key"; 78 int ret = SetParameter(key2, value2); 79 EXPECT_EQ(ret, EC_INVALID); 80 } 81 82 /* key = 32 */ 83 HWTEST_F(SystemParameterNativeTest, parameterTest004, TestSize.Level0) 84 { 85 char key3[] = "rw.sys.version.utilskvparameter0"; 86 char value3[] = "set with key = 32"; 87 int ret = SetParameter(key3, value3); 88 EXPECT_EQ(ret, EC_SUCCESS); 89 } 90 91 /* value > 128 */ 92 HWTEST_F(SystemParameterNativeTest, parameterTest005, TestSize.Level0) 93 { 94 char key4[] = "rw.sys.version.version"; 95 char value4[] = "rw.sys.version.version.version.version flash_offset = *(hi_u32 *)DT_SetGetU32(&g_Element[0], 0)a\ 96 size = *(hi_u32 *)DT_SetGetU32(&g_Element[1], 0)a"; 97 int ret = SetParameter(key4, value4); 98 EXPECT_EQ(ret, EC_INVALID); 99 } 100 101 HWTEST_F(SystemParameterNativeTest, parameterTest006, TestSize.Level0) 102 { 103 char key1[] = "rw.product.not.exist"; 104 char value1[64] = {0}; 105 char defValue1[] = "value of key not exist..."; 106 int ret = GetParameter(key1, defValue1, value1, 64); 107 EXPECT_EQ(ret, static_cast<int>(strlen(defValue1))); 108 } 109 110 HWTEST_F(SystemParameterNativeTest, parameterTest007, TestSize.Level0) 111 { 112 char key2[] = "rw.sys.version.version.version.version"; 113 char value2[64] = {0}; 114 char defValue2[] = "value of key > 32 ..."; 115 int ret = GetParameter(key2, defValue2, value2, 64); 116 EXPECT_EQ(ret, static_cast<int>(strlen(defValue2))); 117 } 118 119 HWTEST_F(SystemParameterNativeTest, parameterTest008, TestSize.Level0) 120 { 121 char key4[] = "test.rw.sys.version"; 122 char* value4 = nullptr; 123 char defValue3[] = "value of key > 32 ..."; 124 int ret = GetParameter(key4, defValue3, value4, 0); 125 EXPECT_EQ(ret, EC_INVALID); 126 } 127 128 HWTEST_F(SystemParameterNativeTest, parameterTest009, TestSize.Level0) 129 { 130 char key5[] = "test.rw.product.type"; 131 char value5[] = "rw.sys.version.version.version.version \ 132 flash_offset = *(hi_u32 *)DT_SetGetU32(&g_Element[0], 0)"; 133 int ret = SetParameter(key5, value5); 134 EXPECT_EQ(ret, EC_INVALID); 135 char valueGet[2] = {0}; 136 char defValue3[] = "value of key > 32 ..."; 137 ret = GetParameter(key5, defValue3, valueGet, 2); 138 EXPECT_EQ(ret, EC_INVALID); 139 } 140 141 HWTEST_F(SystemParameterNativeTest, parameterTest0010, TestSize.Level0) 142 { 143 char key1[] = "test.rw.sys.version"; 144 char value1[] = "10.1.0"; 145 int ret = SetParameter(key1, value1); 146 EXPECT_EQ(ret, 0); 147 char valueGet1[32] = {0}; 148 ret = GetParameter(key1, "version=10.1.0", valueGet1, 32); 149 EXPECT_EQ(ret, static_cast<int>(strlen(valueGet1))); 150 151 char key2[] = "test.rw.product.type"; 152 char value2[] = "wifi_iot"; 153 ret = SetParameter(key2, value2); 154 EXPECT_EQ(ret, 0); 155 char valueGet2[32] = {0}; 156 ret = GetParameter(key2, "version=10.1.0", valueGet2, 32); 157 EXPECT_EQ(ret, static_cast<int>(strlen(valueGet2))); 158 159 char key3[] = "test.rw.product.manufacturer"; 160 char value3[] = "TEST MANUFACTURER"; 161 ret = SetParameter(key3, value3); 162 EXPECT_EQ(ret, 0); 163 char valueGet3[32] = {0}; 164 ret = GetParameter(key3, "version=10.1.0", valueGet3, 32); 165 EXPECT_EQ(ret, static_cast<int>(strlen(valueGet3))); 166 167 char key4[] = "test.rw.product.marketname"; 168 char value4[] = "TEST MARKETNAME"; 169 ret = SetParameter(key4, value4); 170 EXPECT_EQ(ret, 0); 171 char valueGet4[32] = {0}; 172 ret = GetParameter(key4, "version=10.1.0", valueGet4, 32); 173 EXPECT_EQ(ret, static_cast<int>(strlen(valueGet4))); 174 } 175 176 HWTEST_F(SystemParameterNativeTest, parameterTest0011, TestSize.Level0) 177 { 178 char key1[] = "test.rw.sys.version.wait1"; 179 char value1[] = "10.1.0"; 180 int ret = SetParameter(key1, value1); 181 EXPECT_EQ(ret, 0); 182 ret = WaitParameter(key1, value1, 10); 183 EXPECT_EQ(ret, 0); 184 ret = WaitParameter(key1, "*", 10); 185 EXPECT_EQ(ret, 0); 186 char key2[] = "test.rw.sys.version.wait2"; 187 ret = WaitParameter(key2, "*", 1); 188 EXPECT_EQ(ret, 105); 189 } 190 191 HWTEST_F(SystemParameterNativeTest, parameterTest0012, TestSize.Level0) 192 { 193 char key1[] = "test.rw.sys.version.version1"; 194 char value1[] = "10.1.0"; 195 int ret = SetParameter(key1, value1); 196 EXPECT_EQ(ret, 0); 197 198 // success 199 unsigned int handle = FindParameter(key1); 200 EXPECT_NE(handle, static_cast<unsigned int>(-1)); 201 char valueGet1[32] = {0}; 202 ret = GetParameterValue(handle, valueGet1, 32); 203 EXPECT_EQ(ret, static_cast<int>(strlen(valueGet1))); 204 char nameGet1[32] = {0}; 205 ret = GetParameterName(handle, nameGet1, 32); 206 EXPECT_EQ(ret, static_cast<int>(strlen(nameGet1))); 207 208 // fail 209 char key2[] = "test.rw.sys.version.version2"; 210 handle = FindParameter(key2); 211 EXPECT_EQ(handle, static_cast<unsigned int>(-1)); 212 ret = GetParameterValue(handle, valueGet1, 32); 213 EXPECT_EQ(ret, -1); 214 ret = GetParameterName(handle, nameGet1, 32); 215 EXPECT_EQ(ret, -1); 216 } 217 } // namespace OHOS 218