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 "ActsPMSTest.h" 17 18 using namespace std; 19 using namespace testing::ext; 20 21 static PmsInnerApi *g_interface; 22 static PermissionTrans g_systemPers[] = { 23 { 24 "ohos.permission.CAMERA", 25 "for CAMERA use", 26 INUSE, 27 }, 28 { 29 "ohos.permission.RECORD_AUDIO", 30 "for RECORD_AUDIO use", 31 ALWAYS, 32 }, 33 { 34 "ohos.permission.READ_MEDIA_AUDIO", 35 "for READ_MEDIA_AUDIO use", 36 INUSE, 37 }, 38 { 39 "ohos.permission.READ_MEDIA_IMAGES", 40 "for READ_MEDIA_IMAGES use", 41 ALWAYS, 42 }, 43 { 44 "ohos.permission.READ_MEDIA_VIDEO", 45 "for READ_MEDIA_VIDEO use", 46 INUSE, 47 }, 48 { 49 "ohos.permission.WRITE_MEDIA_AUDIO", 50 "for WRITE_MEDIA_AUDIO use", 51 ALWAYS, 52 }, 53 { 54 "ohos.permission.WRITE_MEDIA_IMAGES", 55 "for WRITE_MEDIA_IMAGES use", 56 INUSE, 57 }, 58 { 59 "ohos.permission.WRITE_MEDIA_VIDEO", 60 "for WRITE_MEDIA_VIDEO use", 61 ALWAYS, 62 }, 63 { 64 "ohos.permission.MODIFY_AUDIO_SETTINGS", 65 "for MODIFY_AUDIO_SETTINGS use", 66 INUSE, 67 }, 68 }; 69 70 class ActsPMSLoadTest : public testing::Test { 71 protected: SetUpTestCase(void)72 static void SetUpTestCase(void) 73 { 74 CreateAppDir(); 75 IUnknown *iUnknown = SAMGR_GetInstance()->GetFeatureApi(PERMISSION_SERVICE, PERM_INNER); 76 iUnknown->QueryInterface(iUnknown, DEFAULT_VERSION, (void **) &g_interface); 77 setuid(0); 78 } TearDownTestCase(void)79 static void TearDownTestCase(void) {} SetUp()80 virtual void SetUp() {} TearDown()81 virtual void TearDown() 82 { 83 DeletePermissions(TEST_APP_ID); 84 DeletePermissions(TEST_APP_ID2); 85 DeletePermissions(SUBTEST_APP_ID); 86 UnLoadPermissions(TEST_TASKID); 87 UnLoadPermissions(SUBTEST_TASKID); 88 } 89 }; 90 91 /** 92 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0510 93 * @tc.name Can load application permission with long and short package names 94 * @tc.desc [C- SECURITY -0900] 95 */ 96 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0510, Function | MediumTest | Level2) 97 { 98 SaveOrUpdatePermissions(TEST_APP_SHORT, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 99 SaveOrUpdatePermissions(TEST_APP_LONG, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 100 int ret = LoadPermissions(TEST_APP_SHORT, TEST_TASKID); 101 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 102 ret = LoadPermissions(TEST_APP_LONG, SUBTEST_TASKID); 103 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 104 UnLoadPermissions(TEST_TASKID); 105 UnLoadPermissions(SUBTEST_TASKID); 106 DeletePermissions(TEST_APP_SHORT); 107 DeletePermissions(TEST_APP_LONG); 108 } 109 110 /** 111 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0520 112 * @tc.name Load unauthorized permissions 113 * @tc.desc [C- SECURITY -0900] 114 */ 115 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0520, Function | MediumTest | Level1) 116 { 117 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 118 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 119 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 120 for (int i = 0; i < SYS_PERM_NUM - 1; i++) { 121 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[i].name); 122 EXPECT_EQ(ret, NOT_GRANTED) << "checkperm ret = " << ret << ", index = " << i <<endl; 123 } 124 UnLoadPermissions(TEST_TASKID); 125 DeletePermissions(TEST_APP_ID); 126 } 127 128 /** 129 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0530 130 * @tc.name Load authorized permissions 131 * @tc.desc [C- SECURITY -0900] 132 */ 133 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0530, Function | MediumTest | Level1) 134 { 135 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 136 g_interface->GrantPermission(TEST_APP_ID, g_systemPers[0].name); 137 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 138 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 139 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[0].name); 140 EXPECT_EQ(ret, GRANTED) << "checkperm ret = " << ret << endl; 141 for (int i = 1; i < SYS_PERM_NUM - 1; i++) { 142 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[i].name); 143 EXPECT_EQ(ret, NOT_GRANTED) << "checkperm ret = " << ret << ", index = " << i <<endl; 144 } 145 UnLoadPermissions(TEST_TASKID); 146 DeletePermissions(TEST_APP_ID); 147 } 148 149 /** 150 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0540 151 * @tc.name Load system_grant permissions 152 * @tc.desc [C- SECURITY -0900] 153 */ 154 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0540, Function | MediumTest | Level1) 155 { 156 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 157 g_interface->GrantPermission(TEST_APP_ID, g_systemPers[0].name); 158 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 159 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 160 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[SYS_PERM_NUM - 1].name); 161 EXPECT_EQ(ret, GRANTED) << "checkperm ret = " << ret << endl; 162 UnLoadPermissions(TEST_TASKID); 163 DeletePermissions(TEST_APP_ID); 164 } 165 166 /** 167 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0550 168 * @tc.name Load user_grant permissions 169 * @tc.desc [C- SECURITY -0900] 170 */ 171 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0550, Function | MediumTest | Level0) 172 { 173 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 174 int i; 175 for (i = 0; i < SYS_PERM_NUM; i++) { 176 g_interface->GrantPermission(TEST_APP_ID, g_systemPers[i].name); 177 } 178 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 179 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 180 for (int i = 0; i < SYS_PERM_NUM; i++) { 181 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[i].name); 182 EXPECT_EQ(ret, GRANTED) << "checkperm ret = " << ret << ", index = " << i <<endl; 183 } 184 UnLoadPermissions(TEST_TASKID); 185 DeletePermissions(TEST_APP_ID); 186 } 187 188 /** 189 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0560 190 * @tc.name Load permissions to large and small PIDs 191 * @tc.desc [C- SECURITY -0900] 192 */ 193 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0560, Function | MediumTest | Level0) 194 { 195 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 196 int ret = LoadPermissions(TEST_APP_ID, MAX_PID); 197 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 198 UnLoadPermissions(MAX_PID); 199 ret = LoadPermissions(TEST_APP_ID, MIN_PID); 200 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 201 UnLoadPermissions(MIN_PID); 202 DeletePermissions(TEST_APP_ID); 203 } 204 205 /** 206 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0570 207 * @tc.name Load nonexistent application permissions 208 * @tc.desc [C- SECURITY -0900] 209 */ 210 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0570, Function | MediumTest | Level2) 211 { 212 int ret = LoadPermissions(TEST_APP_ID, MAX_PID); 213 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 214 } 215 216 /** 217 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0580 218 * @tc.name Load loaded application permissions 219 * @tc.desc [C- SECURITY -0900] 220 */ 221 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0580, Function | MediumTest | Level2) 222 { 223 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 224 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 225 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 226 ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 227 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 228 UnLoadPermissions(TEST_TASKID); 229 DeletePermissions(TEST_APP_ID); 230 } 231 232 /** 233 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0630 234 * @tc.name Duplicate load application permissions 235 * @tc.desc [C- SECURITY -0900] 236 */ 237 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0630, Function | MediumTest | Level2) 238 { 239 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 240 LoadPermissions(TEST_APP_ID, TEST_TASKID); 241 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 242 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 243 ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 244 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 245 UnLoadPermissions(TEST_TASKID); 246 DeletePermissions(TEST_APP_ID); 247 } 248 249 /** 250 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0650 251 * @tc.name Load multiple application permissions 252 * @tc.desc [C- SECURITY -0900] 253 */ 254 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0650, Function | MediumTest | Level2) 255 { 256 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 257 SaveOrUpdatePermissions(TEST_APP_ID2, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 258 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 259 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 260 ret = LoadPermissions(TEST_APP_ID2, SUBTEST_TASKID); 261 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 262 UnLoadPermissions(TEST_TASKID); 263 UnLoadPermissions(SUBTEST_TASKID); 264 DeletePermissions(TEST_APP_ID); 265 DeletePermissions(TEST_APP_ID2); 266 } 267 268 /** 269 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0670 270 * @tc.name Load immediately after saving permissions 271 * @tc.desc [C- SECURITY -0900] 272 */ 273 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0670, Function | MediumTest | Level2) 274 { 275 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 276 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 277 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 278 UnLoadPermissions(TEST_TASKID); 279 DeletePermissions(TEST_APP_ID); 280 } 281 282 /** 283 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0680 284 * @tc.name Load immediately after updating permissions 285 * @tc.desc [C- SECURITY -0900] 286 */ 287 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0680, Function | MediumTest | Level2) 288 { 289 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, 0, FIRST_INSTALL); 290 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, UPDATE); 291 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 292 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 293 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[SYS_PERM_NUM - 1].name); 294 EXPECT_EQ(ret, GRANTED) << "checkperm ret = " << ret << endl; 295 UnLoadPermissions(TEST_TASKID); 296 DeletePermissions(TEST_APP_ID); 297 } 298 299 /** 300 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0690 301 * @tc.name Load immediately after deleting permissions 302 * @tc.desc [C- SECURITY -0900] 303 */ 304 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0690, Function | MediumTest | Level3) 305 { 306 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 307 g_interface->GrantPermission(TEST_APP_ID, g_systemPers[0].name); 308 DeletePermissions(TEST_APP_ID); 309 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 310 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 311 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[0].name); 312 EXPECT_EQ(ret, RET_NOK) << "checkperm ret = " << ret << endl; 313 UnLoadPermissions(TEST_TASKID); 314 } 315 316 /** 317 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0700 318 * @tc.name Duplicate load after deleting permissions 319 * @tc.desc [C- SECURITY -0900] 320 */ 321 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0700, Function | MediumTest | Level3) 322 { 323 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 324 g_interface->GrantPermission(TEST_APP_ID, g_systemPers[0].name); 325 LoadPermissions(TEST_APP_ID, TEST_TASKID); 326 DeletePermissions(TEST_APP_ID); 327 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 328 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 329 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[0].name); 330 EXPECT_EQ(ret, GRANTED) << "checkperm ret = " << ret << endl; 331 UnLoadPermissions(TEST_TASKID); 332 } 333 334 /** 335 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0710 336 * @tc.name Load immediately after querying permissions 337 * @tc.desc [C- SECURITY -0900] 338 */ 339 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0710, Function | MediumTest | Level4) 340 { 341 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 342 PermissionSaved* permissions = NULL; 343 int permNum = 0; 344 g_interface->QueryPermission(TEST_APP_ID, &permissions, &permNum); 345 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 346 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 347 ClrPers(permissions); 348 UnLoadPermissions(TEST_TASKID); 349 DeletePermissions(TEST_APP_ID); 350 } 351 352 /** 353 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0720 354 * @tc.name Load permission after grant runtime permissions 355 * @tc.desc [C- SECURITY -0900] 356 */ 357 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0720, Function | MediumTest | Level2) 358 { 359 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 360 LoadPermissions(TEST_APP_ID, TEST_TASKID); 361 g_interface->GrantRuntimePermission(TEST_TASKID, g_systemPers[0].name); 362 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 363 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 364 UnLoadPermissions(TEST_TASKID); 365 DeletePermissions(TEST_APP_ID); 366 } 367 368 /** 369 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0730 370 * @tc.name Load immediately after granting permissions 371 * @tc.desc [C- SECURITY -0900] 372 */ 373 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0730, Function | MediumTest | Level2) 374 { 375 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 376 g_interface->GrantPermission(TEST_APP_ID, g_systemPers[0].name); 377 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 378 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 379 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[0].name); 380 EXPECT_EQ(ret, GRANTED) << "checkperm ret = " << ret << endl; 381 UnLoadPermissions(TEST_TASKID); 382 DeletePermissions(TEST_APP_ID); 383 } 384 385 /** 386 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0740 387 * @tc.name Load immediately after revoking permissions 388 * @tc.desc [C- SECURITY -0900] 389 */ 390 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0740, Function | MediumTest | Level2) 391 { 392 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 393 g_interface->GrantPermission(TEST_APP_ID, g_systemPers[0].name); 394 g_interface->RevokePermission(TEST_APP_ID, g_systemPers[0].name); 395 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 396 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 397 ret = g_interface->CheckPermission(TEST_TASKID, g_systemPers[0].name); 398 EXPECT_EQ(ret, NOT_GRANTED) << "checkperm ret = " << ret << endl; 399 UnLoadPermissions(TEST_TASKID); 400 DeletePermissions(TEST_APP_ID); 401 } 402 403 /** 404 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0830 405 * @tc.name Another application permission change does not affect load permission 406 * @tc.desc [C- SECURITY -0900] 407 */ 408 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0830, Function | MediumTest | Level3) 409 { 410 int pid = fork(); 411 int status = 0; 412 if (pid != 0) { 413 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 414 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 415 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 416 UnLoadPermissions(TEST_TASKID); 417 DeletePermissions(TEST_APP_ID); 418 waitpid(pid, &status, 0); 419 } else { 420 SubTestWithoutCheck(SUBTEST_APP_ID, SUBTEST_TASKID); 421 exit(0); 422 } 423 } 424 425 /** 426 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0850 427 * @tc.name Permission to load exception package names 428 * @tc.desc [C- SECURITY -0900] 429 */ 430 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0850, Function | MediumTest | Level4) 431 { 432 int ret = LoadPermissions(NULL, TEST_TASKID); 433 EXPECT_EQ(ret, PERM_ERRORCODE_INVALID_PARAMS) << "load ret = " << ret << endl; 434 ret = LoadPermissions(SUBTEST_APP_ID, TEST_TASKID); 435 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 436 ret = LoadPermissions(PERMISSION_EMPTY, TEST_TASKID); 437 EXPECT_EQ(ret, PERM_ERRORCODE_STAT_FAIL) << "load ret = " << ret << endl; 438 ret = LoadPermissions(PERMISSION_TOOLONG, TEST_TASKID); 439 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 440 ret = LoadPermissions(PERMISSION_UNSUPPORTED, TEST_TASKID); 441 EXPECT_EQ(ret, PERM_ERRORCODE_SUCCESS) << "load ret = " << ret << endl; 442 } 443 444 /** 445 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0860 446 * @tc.name Permission to load exception pid 447 * @tc.desc [C- SECURITY -0900] 448 */ 449 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0860, Function | MediumTest | Level3) 450 { 451 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 452 int ret = LoadPermissions(TEST_APP_ID, ABNORMAL_TASKID); 453 EXPECT_EQ(ret, PERM_ERRORCODE_INVALID_PARAMS) << "load ret = " << ret << endl; 454 UnLoadPermissions(ABNORMAL_TASKID); 455 DeletePermissions(TEST_APP_ID); 456 } 457 458 /** 459 * @tc.number SUB_SEC_AppSEC_PermissionMgmt_PMS_0880 460 * @tc.name Permission to load exception data 461 * @tc.desc [C- SECURITY -0900] 462 */ 463 HWTEST_F(ActsPMSLoadTest, testSecPMPMS_0880, Function | MediumTest | Level4) 464 { 465 SaveOrUpdatePermissions(TEST_APP_ID, g_systemPers, SYS_PERM_NUM, FIRST_INSTALL); 466 int fd = access(TEST_APP_PATH, F_OK); 467 if (fd == 0) { 468 unlink(TEST_APP_PATH); 469 } 470 fd = open(TEST_APP_PATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); 471 if (fd >= 0) { 472 write(fd, PERMISSION_UNSUPPORTED, strlen(PERMISSION_UNSUPPORTED)); 473 close(fd); 474 } 475 int ret = LoadPermissions(TEST_APP_ID, TEST_TASKID); 476 EXPECT_EQ(ret, PERM_ERRORCODE_JSONPARSE_FAIL) << "load ret = " << ret << endl; 477 UnLoadPermissions(TEST_TASKID); 478 DeletePermissions(TEST_APP_ID); 479 } 480