diff --git a/test/unittest/datatransmitmgr/DevSLMgrTest.cpp b/test/unittest/datatransmitmgr/DevSLMgrTest.cpp index 14d2a84d89bab7e115ffe897f60c43b61e054a26..77c4ebec5cb9d4b9ad66d8b2d44847852e73334f 100644 --- a/test/unittest/datatransmitmgr/DevSLMgrTest.cpp +++ b/test/unittest/datatransmitmgr/DevSLMgrTest.cpp @@ -41,6 +41,7 @@ private: }; static const int32_t DEV_SEC_LEVEL_ERR = 100; +static const int32_t LIST_LENGTH = 128; struct DeviceSecurityInfo { uint32_t magicNum {0}; @@ -102,6 +103,13 @@ static void DATASL_GetUdidByExcept(DEVSLQueryParams *queryParams) queryParams->udidLen = MAX_UDID_LENGTH + 1; } +static void DATASL_GetUdidByExceptZero(DEVSLQueryParams *queryParams) +{ + char udid[65] = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"; + (void)memcpy_s(queryParams->udid, MAX_UDID_LENGTH, udid, MAX_UDID_LENGTH); + queryParams->udidLen = 0; +} + static int32_t GetLocalUdid(DEVSLQueryParams *queryParams) { const char *pkgName = "ohos.dslm"; @@ -388,4 +396,92 @@ static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevelExcept003, TestSize.Level1) ClearList(g_tmpList); g_tmpList = nullptr; DestroyPthreadMutex(); +} + +static void tmpCallbackExcept004(DEVSLQueryParams *queryParams, int32_t result, uint32_t levelInfo) +{ + EXPECT_EQ(DEVSL_ERR_BAD_PARAMETERS, result); +} + +static void AddList(void) +{ + DEVSLQueryParams queryParams; + (void)memset_s(&queryParams, sizeof(queryParams), 0, sizeof(queryParams)); + (void)GetLocalUdid(&queryParams); + + struct DATASLCallbackParams *newListNode = + (struct DATASLCallbackParams*)malloc(sizeof(struct DATASLCallbackParams)); + if (newListNode == nullptr) { + EXPECT_EQ(DEVSL_SUCCESS, DEVSL_SUCCESS); + } + (void)memcpy_s(newListNode->queryParams.udid, MAX_UDID_LENGTH, queryParams.udid, queryParams.udidLen); + newListNode->queryParams.udidLen = queryParams.udidLen; + newListNode->callback = &tmpCallbackExcept004; + + PushListNode(g_tmpList, newListNode); +} + +static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevelExcept004, TestSize.Level1) +{ + int32_t ret; + ret = DATASL_OnStart(); + EXPECT_EQ(DEVSL_SUCCESS, ret); + + DEVSLQueryParams queryParams; + (void)memset_s(&queryParams, sizeof(queryParams), 0, sizeof(queryParams)); + DATASL_GetUdidByExceptZero(&queryParams); + uint32_t levelInfo = 0; + ret = DATASL_GetHighestSecLevel(&queryParams, &levelInfo); + EXPECT_EQ(DEVSL_ERR_BAD_PARAMETERS, ret); + + ret = DATASL_GetHighestSecLevelAsync(&queryParams, &tmpCallbackExcept004); + EXPECT_EQ(DEVSL_ERR_BAD_PARAMETERS, ret); + + g_tmpList = InitList(); + if (g_tmpList != nullptr) { + EXPECT_EQ(DEVSL_SUCCESS, DEVSL_SUCCESS); + } else { + EXPECT_EQ(DEVSL_SUCCESS, DEVSL_ERROR); + } + for (int i = 0; i < LIST_LENGTH; i++) { + AddList(); + } + (void)GetListLength(g_tmpList); + + ClearList(g_tmpList); + g_tmpList = nullptr; + DATASL_OnStop(); +} + +static HWTEST_F(DevSLMgrTest, TestGetHighestSecLevelExcept005, TestSize.Level1) +{ + int32_t ret; + ret = DATASL_OnStart(); + EXPECT_EQ(DEVSL_SUCCESS, ret); + + g_tmpList = InitList(); + if (g_tmpList != nullptr) { + EXPECT_EQ(DEVSL_SUCCESS, DEVSL_SUCCESS); + } else { + EXPECT_EQ(DEVSL_SUCCESS, DEVSL_ERROR); + } + + DEVSLQueryParams queryParams; + (void)memset_s(&queryParams, sizeof(queryParams), 0, sizeof(queryParams)); + (void)GetLocalUdid(&queryParams); + struct DATASLCallbackParams *newListNode = + (struct DATASLCallbackParams*)malloc(sizeof(struct DATASLCallbackParams)); + if (newListNode == nullptr) { + EXPECT_EQ(DEVSL_SUCCESS, DEVSL_SUCCESS); + } + (void)memcpy_s(newListNode->queryParams.udid, MAX_UDID_LENGTH, queryParams.udid, queryParams.udidLen); + newListNode->queryParams.udidLen = queryParams.udidLen; + newListNode->callback = nullptr; + RemoveListNode(g_tmpList, newListNode); + PushListNode(g_tmpList, newListNode); + RemoveListNode(g_tmpList, newListNode); + + ClearList(g_tmpList); + g_tmpList = nullptr; + DATASL_OnStop(); } \ No newline at end of file diff --git a/test/unittest/datatransmitmgr/DevSLMgrTest.h b/test/unittest/datatransmitmgr/DevSLMgrTest.h index 7bea2a84c968c5ba4ea157f96314c7b18c1cd589..6757f49275419564583b2fc58d82420f07324226 100644 --- a/test/unittest/datatransmitmgr/DevSLMgrTest.h +++ b/test/unittest/datatransmitmgr/DevSLMgrTest.h @@ -29,5 +29,8 @@ int TestGetHighestSecLevelAsync004(void); int TestGetHighestSecLevelExcept001(void); int TestGetHighestSecLevelExcept002(void); +int TestGetHighestSecLevelExcept003(void); +int TestGetHighestSecLevelExcept004(void); +int TestGetHighestSecLevelExcept005(void); #endif \ No newline at end of file